呃 怎么说呢 我这个是公司大佬写好的 我直接调用 和以前写的百度上面的都不大一样 感觉很Nice 插个眼 说不定以后还得回来参考参考具体是这样的 你先写好一个模板 就是你要导出的数据应该在Excal显示出什么样子比如我现在需要导出这样的样子

ok 然后找个地方放好 随后写一个配置文件 ExportConfig.xml里面的内容如下

然后是一个ExcalHelper帮助类

    public static class ExcelHelper
    {
     //这里的三各参数 分别是一个数据结果集DataSet , 你刚写的配置文件模板的名字,然后就是一个导出Excal的名字
public static void ExprortExcel(DataSet set, string typeName, string fileName) { string outputFile = HttpContext.Current.Server.MapPath(string.Format("~/Temp/Temp/{0}", fileName)); var tempDirectory = HttpContext.Current.Server.MapPath("~/Temp/Temp/"); var files = Directory.GetFiles(tempDirectory); try { foreach (string item in files) { File.Delete(item); } } catch (Exception) { } ExportMain.GetProductDescription(); set.DataSetName = typeName; ExportMain.Export(set, outputFile); ToClient(outputFile); } public static void ToClient(string filePath) { try { FileInfo info = new FileInfo(filePath); System.Web.HttpContext.Current.Response.Clear(); System.Web.HttpContext.Current.Response.Charset = "UTF-8"; System.Web.HttpContext.Current.Response.ContentEncoding = System.Text.Encoding.UTF8; // 添加头信息,为"文件下载/另存为"对话框指定默认文件名 System.Web.HttpContext.Current.Response.AddHeader("Content-Disposition", "attachment; filename=" + HttpUtility.UrlEncode(info.Name, System.Text.Encoding.UTF8)); // 添加头信息,指定文件大小,让浏览器能够显示下载进度 System.Web.HttpContext.Current.Response.AddHeader("Content-Length", info.Length.ToString()); // 指定返回的是一个不能被客户端读取的流,必须被下载 System.Web.HttpContext.Current.Response.ContentType = "application/ms-excel"; // 把文件流发送到客户端 System.Web.HttpContext.Current.Response.WriteFile(info.FullName); // File.Delete(file.FullName); // 停止页面的执行 HttpContext.Current.Response.End(); } catch (Exception ex) { throw ex; } finally { if (File.Exists(filePath)) { File.Delete(filePath); } } } }
//调用
//建立一个DataSet
  DataSet set = new DataSet();
//建立一个DataTable
  DataTable table = new DataTable("Body");//这里的名字是你配置文件里的source的名字
  //之后为这个Table创建列
  

   table.Columns.Add("Year", typeof(int));//年度
table.Columns.Add("ProvinceName", typeof(string));//省份
table.Columns.Add("CourseName", typeof(string));//文理
table.Columns.Add("MinScore", typeof(int));//分数开始
table.Columns.Add("MaxScore", typeof(int));//分数截止
table.Columns.Add("SameNumber", typeof(int));//同分人数
table.Columns.Add("LowestRank", typeof(int));//最低位次
table.Columns.Add("HighestRank", typeof(int));//最高位次
table.Columns.Add("istrue", typeof(string));//是否正确值

   //循环追加数据 随便你
table.Rows.Add(列1,列2,列3,列4,列5,列6,列7,列8,列9);
//然后将这个table放到DataSet中
set.Tables.Add(table);
//最后调用ExcalHelper帮助类传进需要的参数就OK了
ExcalHelper(set,"OneParagraph","导出Excal的文件名");

后面还会补充多工作表 或者 有跨行表头的 感谢你能看完
优质内容筛选与推荐>>
1、测试计划
2、pthread_mutex_lock
3、常用iPhone手机软件应用
4、css3 闪烁效果
5、bzoj2561 最小生成树


长按二维码向我转账

受苹果公司新规定影响,微信 iOS 版的赞赏功能被关闭,可通过二维码转账支持公众号。

    阅读
    好看
    已推荐到看一看
    你的朋友可以在“发现”-“看一看”看到你认为好看的文章。
    已取消,“好看”想法已同步删除
    已推荐到看一看 和朋友分享想法
    最多200字,当前共 发送

    已发送

    朋友将在看一看看到

    确定
    分享你的想法...
    取消

    分享想法到看一看

    确定
    最多200字,当前共

    发送中

    网络异常,请稍后重试

    微信扫一扫
    关注该公众号