Spire.XLS for .NET 测评

有一位朋友推荐了我 Spire.Office (官网: http://www.e-iceblue.com/ ) —— 基于.NET的办公软件库,说不错。到底如何呢?只有亲测一下才能知道了。

前言 网络上流传的 Office 库很多,可谓“百家争鸣”,但有时候选择多了反而容易让人产生困惑,难以抉择。所以最能吸引程序员的 Office 库一般都具有下面的优点: (1)功能完整
(2)接口易用
(3)文档齐全
(4)容易集成和维护

下面是 Spire.Office 官方提供的组件,其覆盖了一般的办公软件的开发需求,像 Word、Excel、ppt、Pdf等常见的电子文档的操作类库都可以在这里找到。
Spire.XLS for .NET 测评
文章图片

图 1Spire.Office 提供的组件
随安装包一起的帮助文档,也很完整,唯一不足就是缺少相应的文字说明,不过也不影响使用。因为官方的在线教程( http://www.e-iceblue.com/Tutorials.html)实在是详细的“令人发指”,下面是官方的关于 Spire.XLS 库的在线教程(部分),光看目录就已经很清楚其提供的丰富功能了,每个功能点都提供了详尽的文档说明和示例代码(C#/VB.NET),我下面写的demo程序也主要是参考了官方的在线教程。 Spire.XLS for .NET 测评
文章图片
Spire.XLS for .NET 测评
文章图片

图 2官方的在线教程

Spire.XLS 介绍 Spire.Office 提供的组件很丰富,但个人精力有限,只能挑其中一个组建的部分功能进行测试。Excel在许多环境下都常用,这里就以Spire.XLS组件来测试下。 先看看 Spire.XLS 为我们提供了哪些功能: (1)只需要 Spire.XLS 组件即可独立地完成 Excel 文件的相关操作,不需要额外安装 Micosoft Office 软件。 (2)提供强大且高质量的 Excel 文件转换,包括常见的 PDF、HTML、XML、CSV、Image等 (3)创建Excel报表 (4)可自由编辑Excel工作表 (5)可在运行时方便的操作Excel单元和计算引擎 (6)还提供了图表、数据等方面的操作
基于 Spire.XLS 的格式转换程序
下面是我编写的一个demo程序,可以完成 Excel 文档的转换功能,编写这个程序的实际代码不足20行,10分钟就编写好了,这足以验证 Spire.XLS 的强大和易用。 Spire.XLS for .NET 测评
文章图片

图 3Spire.XLS库转换功能测试程序
Spire.XLS for .NET 测评
文章图片

图 4Spire.XLS 转换Test.xls后生成的文件
下面是我编写这个demo的过程,如果你感兴趣可以继续往下看。
1、下载 Spire.XLS 库,并安装(下载地址: http://www.e-iceblue.com/Introduce/free-xls-component.html)。
2. 在 VS2010 中新建一个 Windows Form Application 项目。 Spire.XLS for .NET 测评
文章图片

图 5新建 C# Windows Form 程序
3. 在项目中添加对 Spire.XLS 库的引用。 Spire.XLS for .NET 测评
文章图片

图 6添加对 Spire.XLS 库的引用(1)
Spire.XLS for .NET 测评
文章图片

图 7添加对 Spire.XLS 库的引用(2)
Spire.XLS for .NET 测评
文章图片

图 8新添加的引用
4. 设计窗体界面,如下(使用默认的改控件名) Spire.XLS for .NET 测评
文章图片

图 9测试程序界面
5. 添加实现代码,如下 思路:点击“浏览”按钮时,弹出打开文件对话框选择源文件。默认转换的目标文件类型是PDF(由内部成员变量保存),切换不同目标文件类型时,更新内部标识目标文件类型的变量值。点击“转换”按钮时,弹出保存文件对话框,待输入保存路径并确认后,调用 Spire.XLS 库完成 Excel 文件格式的转换,同时保存到目标路径。下面是源代码,由于代码不多就直接贴出来吧。

using System; using System.Windows.Forms; using Spire.Xls; namespace XSLTest { public partial class Form1 : Form { /// /// 转换的目标文件类型 /// private Spire.Xls.FileFormat fileFormat = FileFormat.PDF; public Form1() { InitializeComponent(); radioButton1.CheckedChanged += new EventHandler(radioButton_CheckedChanged); radioButton2.CheckedChanged += new EventHandler(radioButton_CheckedChanged); radioButton3.CheckedChanged += new EventHandler(radioButton_CheckedChanged); radioButton4.CheckedChanged += new EventHandler(radioButton_CheckedChanged); radioButton5.CheckedChanged += new EventHandler(radioButton_CheckedChanged); radioButton6.CheckedChanged += new EventHandler(radioButton_CheckedChanged); }/// /// 选择源文件 /// /// /// private void button1_Click(object sender, EventArgs e) { OpenFileDialog fileDialog = new OpenFileDialog(); fileDialog.Filter = "Micosoft Excel 97/2000/XP/2003 文件(*.xls)|*.xls" + "|" + "Micosoft Excel 2007/2010 文件(*.xlsx)|*.xlsx"; if (fileDialog.ShowDialog() == DialogResult.OK) { textBox1.Text = fileDialog.FileName; } }/// /// 转换源文件 /// /// /// 【Spire.XLS for .NET 测评】 private void button2_Click(object sender, EventArgs e) { // 源文件路径 string sourceFilePath = textBox1.Text; SaveFileDialog saveFileDialog = new SaveFileDialog(); switch (fileFormat) { case FileFormat.Bitmap: saveFileDialog.Filter = "Bitmap(*.bmp)|*.bmp"; break; case FileFormat.PDF: saveFileDialog.Filter = "PDF Document(*.pdf)|*.pdf"; break; case FileFormat.ODS: saveFileDialog.Filter = "OpenOffice Document Spreadsheet(*.ods)|*.ods"; break; case FileFormat.CSV: saveFileDialog.Filter = "CSV(*.csv)|*.csv"; break; case FileFormat.XML: saveFileDialog.Filter = "XML(*.xml)|*.xml"; break; case FileFormat.XPS: saveFileDialog.Filter = "XPS(*.xps)|*.xps"; break; default: break; } saveFileDialog.FilterIndex = 0; if (saveFileDialog.ShowDialog() != DialogResult.OK) return; // 转换后的目标文件路径 string destFilePath = saveFileDialog.FileName; // 转换 Workbook workbook = new Workbook(); workbook.LoadFromFile(sourceFilePath); workbook.SaveToFile(destFilePath, fileFormat); MessageBox.Show("转换完成", "消息", MessageBoxButtons.OK, MessageBoxIcon.Information); }private void radioButton_CheckedChanged(object sender, EventArgs e) { System.Windows.Forms.RadioButton radioButton = sender as System.Windows.Forms.RadioButton; if (radioButton == null) return; switch (radioButton.Text.ToUpper()) { case "BITMAP": fileFormat = FileFormat.Bitmap; break; case "PDF": fileFormat = FileFormat.PDF; break; case "ODS": fileFormat = FileFormat.ODS; break; case "XPS": fileFormat = FileFormat.XPS; break; case "XML": fileFormat = FileFormat.XML; break; case "CSV": fileFormat = FileFormat.CSV; break; default: break; } } } }


6 程序的发布
基于 Spire.XLS 的程序发布很简单,只需要将相应的dll(可以在Spire.XLS的安装目录下找到)文件拷贝到和可执行程序相同目录。
Spire.XLS for .NET 测评
文章图片

图 10程序的发布

最后附上源代码和可执行的demo程序的下载地址: http://www.kuaipan.cn/file/id_123106879533606129.htm
总结 上面的测试只是Spire.Office的“冰山一角”,更多强大易用的功能,可以参考官方在线教程,当然如果是你感兴趣的话。 关于电子文档操作的类库现在很多,但像Spire.Office这样的功能齐全、接口易用、文档丰富的类库较少,Spire.Office后面有商业公司做支撑,相信然后还会更好。如果项目有类似需求,像快速低成本集成类似功能,可以考虑Spire.Office

    推荐阅读