zoukankan      html  css  js  c++  java
  • 开源Excel库

    一,  需要在Silverlight中导出Excel文件,累死了N个脑细胞,忙活了数天,终于是搞定了,哈哈。

      很常见的方法就是,在Silverlight中提升浏览器的信任级别,直接调用COM+组件导出EXCEL文件。

        dynamic excel = AutomationFactory.CreateObject("Excel.Application");
        dynamic workbook = excel.WorkBooks;
        workbook.Add();
        dynamic sheet = excel.ActiveSheet;

        dynamic _cell = sheet.Cells[Row, Col];
        _cell.Value = "HELLO WORLD,xiwang";

        SvaeFileDialog sfd=new SaveFileDialog();

        var result=sfd.ShowDialog();

        if (result ?? false)

          using (var stream =sfd.OpenFile())

            excel.Save(stream);

        //其他的如:合并单元格,字体,背景色,边框等等。网上遍地都是我就不再废话了。

      在用这种方法实现后,结果吐血:导出的速度堪比龟速,下流至极。

          别无他法另想办法:开源库,纠结几次后,总与找到了一个Silverlight可用的库:MyXLS(神一般的到处速度)。

        

        XlsDocument xls = new XlsDocument();  
        string sheetName = "HELLO WORLD, xiwang ";
        Worksheet sheet = xls.Workbook.Worksheets.Add(sheetName);
        Cells cells = sheet.Cells;
        cells.Add(1,1,"xiwang ,Cool!");

        SvaeFileDialog sfd=new SaveFileDialog();

        var result=sfd.ShowDialog();

        if (result ?? false)

          using (var stream =sfd.OpenFile())

            xls.Save(stream);

    二,开源库小结:

    一, MyXls(现在有Silverlight版本)

    下载地址:http://sourceforge.net/projects/myxls/

    MyXls支持Office Excel 97-2003格式(Biff8格式),但目前并不支持formula即公式;网上流传的支持2007是错误的说法。

    使用它还需要注意的是,它与Office PIA一样,索引号是从1开始的。

    另外不得不说的是,它的构造函数、Save方法、属性中的FileName让人看的眼花瞭乱,无所适从呐-_-。
    二,Koogra

    下载地址:http://sourceforge.net/projects/koogra/

    Koogra支持Office 97-2003(Biff8)以及Office 2007以上(Xlsx)格式,但它仅提供读取功能,没有相关的创建Excel功能;另需要注意它的索引号又是从0开始的。

    我在几台机器上测试不太稳定,即有的机器直接不能运行,没有深究什么问题。
    三,ExcelLibrary

    下载地址:http://code.google.com/p/excellibrary/

    听说这是国人开发的,目前支持97-2003(biff8)格式,未来可能会支持xlsx格式。它使用二维数组的方式来操作,这种方式比较接近Office PIA,另外,它的索引号是从0开始的。

    在测试时,创建出的Excel有时内容是空的,可能存在bug。
    ExcelPackage与EPPlus

    ExcelPackage下载地址:http://excelpackage.codeplex.com/

    EPPlus下载地址:http://epplus.codeplex.com/

    ExcelPackage它主要支持OOXML即Office Open XML标准,Office 2007以上XLSX格式的读写;但它不支持对流的操作,仅支持对实体文件的操作。

    EPPlus全称应该是ExcelPackage Plus,即ExcelPackage的增强版,它在ExcelPackage的基础上,增强了许多功能包括对流、Linq的支持,可以说相当不错。
    四,.NET版的POI NPOI
    下载地址:http://npoi.codeplex.com/releases/view/19351
    NPOI 是 POI 项目的 .NET 版本。POI是一个开源的Java读写Excel、WORD等微软OLE2组件文档的项目。

    使用 NPOI 你就可以在没有安装 Office 或者相应环境的机器上对 WORD/EXCEL 文档进行读写。
    五,Silverlight ExcelLite
    ExcelLite下载地址:http://excellite.codeplex.com/
    可以在没有安装MS Office环境下,写入excel 2003,库使用二进制格式读写数据,支持图片添加等。据我当前所知,该库对合并单元格,设置边框等等支持不好。不支持xlsx格式,但是读写速度很快,小巧可以尝试下。

  • 相关阅读:
    地三鲜
    在linux下使用am335x的DMA
    通过tarball形式安装HBASE Cluster(CDH5.0.2)——集群安装总览
    通过tarball形式安装HBASE Cluster(CDH5.0.2)——如何配置分布式集群中的zookeeper
    如何通过SSH及其Client 批量分发文件和执行管理命令
    解决ESXi有虚拟机模版部署的CentOS虚拟机,网卡eth0找不到问题
    CentOS 65 安装vmware tools 杂记
    安装vmware vCenter Appliance
    使用FileZilla解决从Windows上传文件到Linux vsftpd的乱码问题!
    不关闭seLinux解决vsftpd服务本地用户不能登录问题(500 OOPS: cannot change directory:/home/***)
  • 原文地址:https://www.cnblogs.com/xiwang/p/2428874.html
Copyright © 2011-2022 走看看