62,271
社区成员
发帖
与我相关
我的任务
分享
public void CreateExcel(DataTable dt, string FileName)
{
HttpResponse resp;
resp = Page.Response;
resp.ContentEncoding = System.Text.Encoding.GetEncoding("GB2312");
resp.AppendHeader("Content-Disposition", "attachment;filename=" + FileName);
resp.ContentType = "application/ms-excel";
string colHeaders = "", ls_item = "";
int i = 0;
//定义表对象与行对像,同时用DataSet对其值进行初始化
//DataTable dt = ds.Tables[0];
DataRow[] myRow = dt.Select("");
//取得数据表各列标题,各标题之间以\t分割,最后一个列标题后加回车符
for (i = 0; i < dt.Columns.Count; i++)
{
if (i != dt.Columns.Count - 1)
{
colHeaders += dt.Columns[i].Caption.ToString() + "\t";
}
else
{
colHeaders += dt.Columns[i].Caption.ToString() + "\n";
}
}
//向HTTP输出流中写入取得的数据信息
resp.Write(colHeaders);
//逐行处理数据
foreach (DataRow row in myRow)
{
//在当前行中,逐列获得数据,数据之间以\t分割,结束时加回车符\n
for (i = 0; i < row.ItemArray.Length; i++)
{
if (i != row.ItemArray.Length - 1)
{
ls_item += row[i].ToString() + "\t";
}
else
{
ls_item += row[i].ToString() + "\n";
}
}
//当前行数据写入HTTP输出流,并且置空ls_item以便下行数据
resp.Write(ls_item);
ls_item = "";
}
//写缓冲区中的数据到HTTP头文件中
resp.End();
}
int i = 0;
int cl = dt.Columns.Count;
//取得数据表各列标题,各标题之间以t分割,最后一个列标题后加回车符
string[,] head ={
{"",""},
{"Campaign_Email","Email address"},
{"Campaign_HasSend","Sent Success?"},
{"Campaign_HasOpen","Email opened?"},
{"cLink1","Click Link1 "},
{"cLink2","Click Link2"},
{"cLink3","Click Link3"},
{"HasSend_dt","Sent date"},
};
for (i = 0; i < head.GetLength(0); i++)
{
if (i == cl - 1)//最后一列,加n
{
colHeaders += head[i, 1].ToString() + "\n";
}
else
{
colHeaders += head[i, 1].ToString() + "\t";
}
}
// for(i=0;i<cl;i++)
// {
// if(i==(cl-1))//最后一列,加n
// {
// colHeaders +=dt.Columns[i].Caption.ToString() +"\n";
// }
// else
// {
// colHeaders+=dt.Columns[i].Caption.ToString()+"\t";
// }
//
// }
resp.Write(colHeaders);
//向HTTP输出流中写入取得的数据信息
//逐行处理数据
foreach (DataRow row in myRow)
{
//当前行数据写入HTTP输出流,并且置空ls_item以便下行数据
for (i = 0; i < cl; i++)
{
if (i == (cl - 1))//最后一列,加n
{
ls_item += (row[i] == System.DBNull.Value ? "" : row[i].ToString()) + "\n";
}
else
{
ls_item += (row[i] == System.DBNull.Value ? "" : row[i].ToString()) + "\t";
}
}
resp.Write(ls_item);
ls_item = "";
}
string FootCount = "";
protected void xueqibiaobao_Click(object sender, EventArgs e)//学生学期考勤信息生成方法
{
string str8 = "select xueqi,classname,xuehao,stname,leixing,count(*) as cishu from tb_kaoqin where xueqi='" +
xueqitjb.SelectedValue + "' and classname='" +
xueqibanji.Text + "' group by xueqi,classname,xuehao,stname,leixing";
DataSet st = db.GetDs(str8);
StringWriter sw = new StringWriter();
sw.WriteLine("学期,班级,学号,姓名,类型,累计");
foreach (DataRow dr in st.Tables[0].Rows)
{
sw.Write(dr[0].ToString() + ",");
sw.WriteLine(dr[1].ToString() + "," + dr[2].ToString() + "," + dr[3].ToString() + "," + dr[4].ToString() + "," + dr[5].ToString());
}
sw.Close();
string name = System.DateTime.Today.ToString("yyyy年MM月dd日") + ".csv";
Response.AddHeader("Content-Disposition", "attachment; filename=" + Server.UrlEncode(name));
Response.ContentType = "application/ms-excel";
Response.ContentEncoding = System.Text.Encoding.GetEncoding("GB2312");
Response.Write(sw);
Response.End();
}