• 通过EPPlus导出Excel文件


    小弟刚刚走上工作岗位不久,工作中常常遇到要导出Excel的情况,但感觉两种常见的导出方式(一种是通过GridView,另一种是通过微软的COM组件)都不是很理想,前者导出的灵活度太低,后者又常常出现进程无法回收,所以一直想找个.net平台的第三方Excel组件,于是就在网上找到了EPPlus。

        EPPlus是一个使用Open Office XML(xlsx)文件格式,能读写Excel 2007/2010 文件的开源组件,官网为:http://epplus.codeplex.com/。唯一的遗憾是我在网上没有找到有关这个组件的中文资料,我一直不清楚为什么,难道这个组件有什么大缺陷?还是目前还没在国内大量使用?反正我看了官网的介绍后感觉这个组件还是蛮好的,就决定先用它了。(如果这个组件有什么大缺陷,还请知情人士告诉我一下,省得我再花时间研究它了。)

        下面是一个简单的例子,通过EPPlus组件来导出一个Excel文件(首先添加EPPlus引用)。我是在页面放个button,Onclick事件处理函数如下:

            //创建工作表
    OfficeOpenXml.ExcelPackage ep = new OfficeOpenXml.ExcelPackage();
    OfficeOpenXml.ExcelWorkbook wb
    = ep.Workbook;
    OfficeOpenXml.ExcelWorksheet ws
    = wb.Worksheets.Add("我的工作表");

    //配置文件属性
    wb.Properties.Category = "类别";
    wb.Properties.Author
    = "作者";
    wb.Properties.Comments
    = "备注";
    wb.Properties.Company
    = "公司";
    wb.Properties.Keywords
    = "关键字";
    wb.Properties.Manager
    = "管理者";
    wb.Properties.Status
    = "内容状态";
    wb.Properties.Subject
    = "主题";
    wb.Properties.Title
    = "标题";
    wb.Properties.LastModifiedBy
    = "最后一次保存者";

    //写数据
    ws.Cells[1, 1].Value = "Hello";
    ws.Cells[
    "B1"].Value = "World";
    ws.Cells[
    3, 3, 3, 5].Merge = true;
    ws.Cells[
    3, 3].Value = "Cells[3, 3, 3, 5]合并";
    ws.Cells[
    "A4:D5"].Merge = true;
    ws.Cells[
    "A4"].Value = "Cells[\"A4:D5\"]合并";

    //写到客户端(下载)
    Response.Clear();
    Response.AddHeader(
    "content-disposition", "attachment; filename=FileFlow.xlsx");
    Response.ContentType
    = "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet";
    Response.BinaryWrite(ep.GetAsByteArray());
    //ep.SaveAs(Response.OutputStream); 第二种方式
    Response.Flush();
    Response.End();

    导出的Excel文件属性:

    导出的Excel文件内容:

        我测试了下,这个组件在2008 64位机器上也能运行,如果有感兴趣的,可以试试,至于学习资料,目前好像只有官网有,如果不是因为这个插件本身有缺陷,还希望有兴趣的同志能研究一下,这也是我写此文的目的,希望以后能多点中文的资料,不用头疼去看英文。

  • 相关阅读:
    shell中逻辑与的两种表示方法
    Git学习之Git恢复进度
    RH318之域控服务器
    《征服C指针》读书笔记
    2013年:一个技术领导的启程
    sqlite的一个Unable to Open database file的坑爹错误
    我的2013——青春的躁动
    C/C++注册动态对象到Lu系统并进行运算符重载
    Geeks面试题:Min Cost Path
    Leetcode Gray Code
  • 原文地址:https://www.cnblogs.com/zhcw/p/2205665.html
Copyright © 2020-2023  润新知