C#出Excel
一般用Response.Write出一DateSet的方式上很多,但都不是我要的,
现遇到的问题是:
1.我的数据字段中含电话号码,所以在入Excel后第一个0会被去掉,还有如时间格式是 00:00 二位的在入Excel中後格式化成 00:00:00
2.容中含超长文本,文本含HMTL符,有些还有乱码符,HTML符处理应可以,但乱码符在汇入Excel後(以XML方式写入),由于乱码造成Excel打开失败。
不知有没有更好的方法可以解决上述问题,并成功输出Excel文件。
[解决办法]
读出来应该加格式控制:
- C# code
private static void DataSetExportToExcel(cel(){
[解决办法]
学习!!!!!!!!!!!!!!!!
[解决办法]
[size=12px][/size][size=12px][/size][size=12px][/size][size=12px][/size]
学习
[解决办法]
- C# code
using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Data.OleDb;using System.IO;namespace ConsoleApplication2{ class Program { static void Main(string[] args) { string path = "C:\\ExcelData1.xls"; if(File.Exists(path)) { File.Delete(path); } string strConn = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + path + ";localhos
[解决办法]
觉得一楼的用xml转化的方法挺好,虽然看起来比较麻烦,但效率是很高的.并且一楼写的也比较详细,楼主可以考虑下.关注中.
[解决办法]
[解决办法]
这是我程序里的导出EXCEL模块,不知道是不是楼长想要的。
// 把DataTable内容导出excel并返回客户端
public static void DataTable2Excel(System.Data.DataTable dtData)
{
System.Web.UI.WebControls.DataGrid dgExport = null;
// 当前对话
System.Web.HttpResponse resp = System.Web.HttpContext.Current.Response;
// 为了解决dgData中可能进行了分页的情况,需要重新定义一个无分页的DataGrid
dgExport = new System.Web.UI.WebControls.DataGrid();
dgExport.DataSource = dtData.DefaultView;
dgExport.AllowPaging = false;
dgExport.DataBind();
// 返回客户端
resp.Clear();
resp.Buffer = true;
//page.Response.Write("<meta http-equiv=Content-Type content=text/html>");
//page.Response.Write("<meta http-equiv=Content-Type content=text/html;charset=gb2312>");
//resp.ContentEncoding = System.Text.Encoding.GetEncoding("utf-7");//使用GB2312有时候会出现乱码
resp.ContentEncoding = System.Text.Encoding.UTF7;//使用GB2312有时候会出现乱码
resp.AppendHeader("content-disposition", "attachment;filename=\"" + HttpUtility.UrlEncode(DateTime.Now.ToString("yyyy-MM-dd"), System.Text.Encoding.UTF8) + ".xls\"");
//page.EnableViewState = false;
System.IO.StringWriter tw = new System.IO.StringWriter();
System.Web.UI.HtmlTextWriter hw = new System.Web.UI.HtmlTextWriter(tw);
dgExport.RenderControl(hw);
resp.Write(tw.ToString());
resp.End();
}
[解决办法]
先顶了再慢慢看。
[解决办法]
------解决方案--------------------
顶一下,收藏了。
[解决办法]
顶