datatable导出到Excel解决方法
datatable导出到Excel
请大神们看看这是什么问题,为什么会把整个页面都导出了,我只要datatable的数据
public static void ExportExcel(HttpResponse Response, DataTable dt, string HeadCaption, string HeadField, string HeadWidth, string FileType, string FileName, ref string ErrorStr)
{
Response.Buffer = true;
Response.ClearContent();
Response.ClearHeaders();
Response.Charset = "GB2312";
Response.AppendHeader("Content-Disposition", "attachment;filename=" + HttpUtility.UrlEncode(FileName, Encoding.UTF8).ToString());
Response.ContentEncoding = System.Text.Encoding.Default;//设置输出流为简体中文
Response.ContentType = FileType;//"application/ms-excel";//设置输出文件类型为excel文件。
string colHeaders = "";
string ls_item = "";
string[] sArrayCaption = HeadCaption.Split(',');//表头
for (int i = 0; i < sArrayCaption.Length; i++)
{
if (i == (sArrayCaption.Length - 1))//最后一列,加n
{
colHeaders += sArrayCaption[i].ToString().Trim() + "\n";
}
else
{
colHeaders += sArrayCaption[i].ToString().Trim() + "\t";
}
}
Response.Write(colHeaders);
//向HTTP输出流中写入取得的数据信息
//逐行处理数据
////定义表对象与行对象,同时用DataSet对其值进行初始化
string[] sArrayField = HeadField.Split(',');//数据字段名
DataRow[] myRow = dt.Select();//可以类似dt.Select("id>10")之形式达到数据筛选目的
foreach (DataRow row in myRow)
{
//当前行数据写入HTTP输出流,并且置空ls_item以便下行数据
for (int i = 0; i < sArrayField.Length; i++)
{
if (i == (sArrayField.Length - 1))//最后一列,加n
{
ls_item += row[sArrayField[i].ToString().Trim()].ToString().Trim() + "\n";
}
else
{
ls_item += row[sArrayField[i].ToString().Trim()].ToString().Trim() + "\t";
}
}
Response.Write(ls_item);
请大神们看看这是什么问题,为什么会把整个页面都导出了,我只要datatable的数据
public static void ExportExcel(HttpResponse Response, DataTable dt, string HeadCaption, string HeadField, string HeadWidth, string FileType, string FileName, ref string ErrorStr)
{
Response.Buffer = true;
Response.ClearContent();
Response.ClearHeaders();
Response.Charset = "GB2312";
Response.AppendHeader("Content-Disposition", "attachment;filename=" + HttpUtility.UrlEncode(FileName, Encoding.UTF8).ToString());
Response.ContentEncoding = System.Text.Encoding.Default;//设置输出流为简体中文
Response.ContentType = FileType;//"application/ms-excel";//设置输出文件类型为excel文件。
string colHeaders = "";
string ls_item = "";
string[] sArrayCaption = HeadCaption.Split(',');//表头
for (int i = 0; i < sArrayCaption.Length; i++)
{
if (i == (sArrayCaption.Length - 1))//最后一列,加n
{
colHeaders += sArrayCaption[i].ToString().Trim() + "\n";
}
else
{
colHeaders += sArrayCaption[i].ToString().Trim() + "\t";
}
}
Response.Write(colHeaders);
//向HTTP输出流中写入取得的数据信息
//逐行处理数据
////定义表对象与行对象,同时用DataSet对其值进行初始化
string[] sArrayField = HeadField.Split(',');//数据字段名
DataRow[] myRow = dt.Select();//可以类似dt.Select("id>10")之形式达到数据筛选目的
foreach (DataRow row in myRow)
{
//当前行数据写入HTTP输出流,并且置空ls_item以便下行数据
for (int i = 0; i < sArrayField.Length; i++)
{
if (i == (sArrayField.Length - 1))//最后一列,加n
{
ls_item += row[sArrayField[i].ToString().Trim()].ToString().Trim() + "\n";
}
else
{
ls_item += row[sArrayField[i].ToString().Trim()].ToString().Trim() + "\t";
}
}
Response.Write(ls_item);