zoukankan      html  css  js  c++  java
  • Spire.XLS for .NET 測评

         有一位朋友推荐了我 Spire.Office (官网:http://www.e-iceblue.com/) —— 基于.NET的办公软件库,说不错。

    究竟怎样呢?仅仅有亲測一下才干知道了。



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

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

    图 1  Spire.Office 提供的组件

         随安装包一起的帮助文档,也非常完整,唯一不足就是缺少对应的文字说明,只是也不影响使用。由于官方的在线教程(http://www.e-iceblue.com/Tutorials.html)实在是具体的“令人发指”,以下是官方的关于 Spire.XLS 库的在线教程(部分)。光看文件夹就已经非常清楚其提供的丰富功能了,每一个功能点都提供了详尽的文档说明和演示样例代码(C#/VB.NET),我以下写的demo程序也主要是參考了官方的在线教程。
       
    图 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 的强大和易用。

    图 3  Spire.XLS库转换功能測试程序


    图 4  Spire.XLS 转换Test.xls后生成的文件

     以下是我编写这个demo的过程。假设你感兴趣能够继续往下看。

    1、下载 Spire.XLS 库,并安装(下载地址:http://www.e-iceblue.com/Introduce/free-xls-component.html)。

    2. 在 VS2010 中新建一个 Windows Form Application 项目。


    图 5  新建 C# Windows Form 程序

    3. 在项目中加入对 Spire.XLS 库的引用。


    图 6  加入对 Spire.XLS 库的引用(1)


                                    图 7  加入对 Spire.XLS 库的引用(2)


    图 8  新加入的引用

    4. 设计窗口界面,例如以下(使用默认的改控件名)

    图 9  測试程序界面

    5. 加入实现代码,例如以下
        思路:点击“浏览”button时。弹出打开文件对话框选择源文件。默认转换的目标文件类型是PDF(由内部成员变量保存),切换不同目标文件类型时,更新内部标识目标文件类型的变量值。

    点击“转换”button时,弹出保存文件对话框,待输入保存路径并确认后,调用 Spire.XLS 库完毕 Excel 文件格式的转换,同一时候保存到目标路径。以下是源码。因为代码不多就直接贴出来吧。

    using System;
    using System.Windows.Forms;
    using Spire.Xls;
    
    namespace XSLTest
    {
        public partial class Form1 : Form
        {
            /// <summary>
            /// 转换的目标文件类型
            /// </summary>
            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);
    
            }
    
            /// <summary>
            /// 选择源文件
            /// </summary>
            /// <param name="sender"></param>
            /// <param name="e"></param>
            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;
                }
            }
    
            /// <summary>
            /// 转换源文件
            /// </summary>
            /// <param name="sender"></param>
            /// <param name="e"></param>
            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);</span>
    
                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 的程序公布非常easy,仅仅须要将对应的dll(能够在Spire.XLS的安装文件夹下找到)文件复制到和可运行程序同样文件夹。

    图 10  程序的公布

    最后附上源码和可运行的demo程序的下载地址:http://www.kuaipan.cn/file/id_123106879533606129.htm

    总结
         以上測试仅仅是Spire.Office的“冰山一角”。很多其它强大易用的功能,能够參考官方在线教程,当然假设是你感兴趣的话。
         关于电子文档操作的类库如今非常多,但像Spire.Office这种功能齐全、接口易用、文档丰富的类库较少,Spire.Office后面有商业公司做支撑。相信然后还会更好。

    假设项目有类似需求,像高速低成本集成类似功能,能够考虑Spire.Office

  • 相关阅读:
    js内置对象
    js对象
    js函数
    js数组
    fetch
    vue按需引入element或mint
    nginx跳转访问
    webstrom vue项目让局域网访问
    Vue+Highcharts完全使用
    HighCharts使用更多图表HighChartsMore
  • 原文地址:https://www.cnblogs.com/lcchuguo/p/5118952.html
Copyright © 2011-2022 走看看