导入Excel封装类
没人回答。我自己搞定了,发上去,大家看下
关键在于响应那个地方 Response
因为到类中 Response 不能用,所以保存,读取都不能用,
只要把Response 改为 HttpContext.Current.Response 就可以了,
public static void exportExcel(DataSet ds) //Response生成Excel
{
sw = new ();
sw.WriteLine("编号\t类别\t描述\t出现地点");
//foreach (DataRow dr in dt.Rows)
//{
//
sw.WriteLine((dr["errorId"] + "\t " + dr["errorClass"] + "\t" + dr["errorMake"] + "\t" + dr["BSPlace"]);
//}
for (int i = 0; i < ds.Tables[0].Rows.Count; i++)
{
sw.WriteLine(ds.Tables[0].Rows[i]["errorId"] + "\t " + ds.Tables[0].Rows[i]["errorClass"] + "\t" + ds.Tables[0].Rows[i]
["errorMake"] + "\t" + ds.Tables[0].Rows[i]["BSPlace"]);
}
sw.Close();
Response.AddHeader("Content-Disposition", "attachment;filename=error.xls");
Response.ContentType = "application/ms-excel";
Response.ContentEncoding = System.Text.Encoding.GetEncoding("GB2312");
Response.Write(sw);
Response.End();
}
这个是数据库
create table error
(
errorId int identity(1,1) not null,
errorClass varchar(30)not null ,---消息类别
BSPlace
varchar(50) not null,--发生地点
errorMake varchar(50) not null,---描述
}
你把代码贴上去就可以用了,记得添加引用 COM
把Excel加进去,
还有,导入时用流读取时,比用DataTable 转换 快很多,适合大量数据导入Excel ,样式的话我不会用流写出,
可以提供一个控件给大家,很好用的,已经破解了