开源Excel库

原文http://www.cnblogs.com/xiwang/archive/2012/04/01/2428874.html

 

一,  需要在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格式,但是读写速度很快,小巧可以尝试下。

作者:墨梅

出处:http://www.cnblogs.com/xiwang/

欢迎任何形式的转载,但请务必注明出处。

时间: 2024-10-30 23:16:18

开源Excel库的相关文章

机器视觉开源处理库汇总

机器视觉开源处理库汇总 从cvchina搞到的机器视觉开源处理库汇总,转来了,很给力,还在不断更新... 通用库/General Library OpenCV 无需多言. RAVL Recognition And Vision Library. 线程安全.强大的IO机制.包含AAM. CImg 很酷的一个图像处理包.整个库只有一个头文件.包含一个基于PDE的光流算法. 图像,视频IO/Image, Video IO FreeImage DevIL ImageMagick FFMPEG Video

从Google开源RE2库学习到的C++测试方案

最近因为科研需求,一直在研究Google的开源RE2库(正则表达式识别库),库源码体积庞大,用C++写的,对于我这个以前专供Java的人来说真的是一件很痛苦的事,每天只能啃一点点.今天研究了下里面用到的测试方法,感觉挺好的,拿来跟大家分享下!(哈~C++大牛勿喷) 对于我这个C++菜鸟中的菜鸟而言,平时写几个函数想要测试一般都是在main中一个一个的测试,因为没用C++写过项目,没有N多方法所以在main中一个个测试也不费劲.但是对于一个项目而言,或多或少都有N多方法,如果在main中一个个测试

我的Android进阶之旅------>【强力推荐】Android开源图表库XCL-Charts版本发布及展示页

         因为要做图表相关的应用,后来百度发现了一个很好的Android开源图表库(XCL-Charts is a free charting library for Android platform.)                      下面内容转载于:http://blog.csdn.net/xcl168/article/details/29675613,详细介绍了XCL-Charts的展示内容.   =====================================

C++ 100款开源界面库 (10)

(声明:Alberl以后说到开源库,一般都是指著名的.或者不著名但维护至少3年以上的.那些把代码一扔就没下文的,Alberl不称之为开源库,只称为开源代码.这里并不是贬低,像Alberl前面那个系列的教程<2013 duilib入门简明教程>,还有本系列教程,还有前面介绍的CodeProject,基本上都是代码往上面一扔,就不用再怎么维护的.这些都称之为开源代码,其实开源代码对新手的帮助更大,因为很简明的说明了代码用法~O(∩_∩)O~)       前面两个教程已经对制作界面的几种方式进行了

Disable Google Fonts Plus插件禁用谷歌开源字体库

由于Google Fonts字体库等服务在国内被禁用,许多使用Google Fonts的WordPress网站打开异常困难.今天,我们给大家带来了一款插件,Disable Google Fonts Plus,可以方便地解决这个问题. 为什么要关闭Google Fonts字体库 Google Fonts 是谷歌公司推出的一项字体库服务,主要是为了解决跨平台的字体一致性问题.WordPress 3.8版本在重新设计WordPress后台界面的时候,开始使用Google Fonts字体库. 使用Goo

[C#技术] .NET平台开源JSON库LitJSON的使用方法

原文:[C#技术] .NET平台开源JSON库LitJSON的使用方法 一个简单示例: String str = "{'name':'cyf','id':10,'items':[{'itemid':1001,'itemname':'hello'},{'itemid':1002,'itemname':'hello2'}]}";               //*** 读取JSON字符串中的数据 *******************************             Jso

MPAndroidChart开源图表库的使用介绍之饼状图、折线图和柱状图_java

MPAndroidChart开源图表库之饼状图 为大家介绍一款图标开源库MPAndroidChart,它不仅可以在Android设备上绘制各种统计图表,而且可以对图表进行拖动和缩放操作,用起来非常灵活.MPAndroidChart同样拥有常用的图表类型:线型图.饼图.柱状图和散点图. mpandroidchartlibrary.jar包下载地址: https://github.com/PhilJay/MPAndroidChart/releases 下面主要实现以下饼状图: 1.从上面的地址中下载

怎样在Github上托管开源代码库

怎样在Github上托管开源代码库 大家好,今天我们要学习一下怎样在github.com提供的仓库中托管开源软件源代码.GitHub是一个基于web的Git仓库托管服务,提供基于 git 的分布式版本控制和源代码管理(SCM)功能,并加入了自身的特点.它给开源项目和私有项目提供了一个互相协作的工作区.代码预览和代码管理功能.不像Git是一个完完全全的命令行工具,GitHub提供了一个基于web的图形化界面和桌面,也整合了手机操作.GitHub同时提供了私有库付费计划和通常用来管理开源软件项目的免

Linux 基金会无人机开源代码库项目 Dronecode

dronecode无人机开源项目无人机无疑是时下最火爆的硬件创业项目之一,除了亚马逊.Google这样的资深玩家,数以万计的独立开发者和创业公司都希望通过在垂直领域中整合无人机技术实现创新应用,例如健康娱乐.影视制作.新闻报道.环境保护.电子商务.搜索救援和科学研究等. 本周无人机开发者们迎来一个好消息,Linux基金会联合十家公司推出无人机代码计划(Dronecode Project),将为无人机开发者们提供操作系统.导航工具.飞行控制等方面的大量开源代码. 如今虽然大量无人机项目中都采用了L