如何用C1实现应用程序与微软Excel的交互

本文介绍使用C1实现与微软Excel的交互。不需要安装Microsoft Excel,可以用C1简单的命令来加载工作簿、操作工作表,然后将工作簿保存到一个Excel文件。它用过程C1XLBook对象在代码中把握Excel文件,可以将任何数据从应用中转换到Excel里。OpenXML格式使得它支持对更小的、压缩的XLSX文件进行保存。在本文Demo中,就用C1XLBook导入Excel文件作为C1Chart的数据源。可以在运行时在左边面板选择不同的Excel文件,导入到C1XLBook中并读取其中的数据,效果如下图所示:<p><a href="http://www.grapecity.com.cn/image.ashx?picture=excel-import.png"><img style="background-image: none; padding-left: 0px; padding-right: 0px; display: inline; padding-top: 0px; border: 0px;" title="excel-import" src="http://www.grapecity.com.cn/image.ashx?picture=excel-import_thumb.png" alt="excel-import" width="504" height="380" border="0" /></a></p>

发布于 2014/05/27 00:00

ComponentOne Enterprise

本文介绍使用C1实现与微软Excel的交互。

不需要安装Microsoft Excel,可以用C1简单的命令来加载工作簿、操作工作表,然后将工作簿保存到一个Excel文件。它用过程C1XLBook对象在代码中把握Excel文件,可以将任何数据从应用中转换到Excel里。OpenXML格式使得它支持对更小的、压缩的XLSX文件进行保存。

在本文Demo中,就用C1XLBook导入Excel文件作为C1Chart的数据源。可以在运行时在左边面板选择不同的Excel文件,导入到C1XLBook中并读取其中的数据,效果如下图所示:

excel-import

要实现上面的功能,就需要从Excel中读取数据,那么实现步骤如下。

首先从工具箱拖拽或用代码创建一个C1XLBook,在C1XLBook中加载或创建一个Excel工作簿。其代码如下:

C1XLBook _xlBook = new C1XLBook();

_xlBook.Load(AppDomain.CurrentDomain.BaseDirectory+ filename);

 

接着,在C1XLBook上加载的Excel后,就可以访问工作表的数据,这些数据是一个由行、列和单元格组成的简单的表格。本文Demo中需要的数据有四个:电导、压力、温度和Ph,操作单元格得到数据的代码如下所示:

DrillDataPoints GetChartData(C1XLBook book)
        {
            // Get first sheet
            var sheet = book.Sheets[0];

            // Get location, date, and cell count
            var location = sheet[1, 1].Value as string;
            var date = (DateTime)sheet[2, 1].Value;
            var count = sheet.Rows.Count - 5;
            label.Text = string.Format("{0}, {1} points", location, count);

            // Get values into arrays for charting
            var drillData = new DrillDataPoints(count);
            for (int r = 0; r < count; r++)
            {
                drillData.Temperature[r] = (double)sheet[r + 5, 1].Value;
                drillData.Pressure[r] = (double)sheet[r + 5, 2].Value;
                drillData.Conductivity[r] = (double)sheet[r + 5, 3].Value;
                drillData.Ph[r] = (double)sheet[r + 5, 4].Value;
                drillData.Depth[r] = r;
            }
            drillData.ScaleValues();

            // Send data to chart
            return drillData;
        }

 

还可以来导出XLS文件或 XLSX文件。如,C1Chart控件,它可以使用C1XLBook来生成报告与Excel兼容的版本。

导出的Save方法如下所示:

        //   fileName:	Name of the file to save.
        //   stream:	System.IO.Stream where the worksheet is saved.
        //   format:    C1.C1Excel.C1XLBook.FileFormat value that specifies the format to save 	//		the worksheet in.
        // 概要:
        //     Saves the worksheet into a stream.
        public void Save(Stream stream);
        //
        // 概要:
        //     Saves the worksheet to a file.
        public void Save(string fileName);
        //
        // 概要:
        //     Saves the worksheet into a stream.
        public void Save(Stream stream, FileFormat format);
        //
        // 概要:
        //     Saves the worksheet to a file.
        public void Save(string fileName, FileFormat format);

 

 

本文Demo的源代码如下:

Chart_InteractionDemo.7z (1.90 mb)

本文的相关博文:创建C1Chart图表实现交互能力

关于葡萄城

葡萄城是专业的软件开发技术和低代码平台提供商,以“赋能开发者”为使命,致力于通过表格控件、低代码和BI等各类软件开发工具和服务,一站式满足开发者需求,帮助企业提升开发效率并创新开发模式。葡萄城开发技术始于1980年,40余年来始终聚焦软件开发技术,有深厚的技术积累和丰富的产品线。是业界能够同时赋能软件开发和低代码开发的企业。凭借过硬的产品能力、活跃的用户社区和丰富的伙伴生态,与超过3000家合作伙伴紧密合作,产品广泛应用于信息和软件服务、制造、交通运输、建筑、金融、能源、教育、公共管理等支柱产业。

相关产品
推荐相关案例
关注微信
葡萄城社区二维码

关注“葡萄城社区”

活字格低代码二维码

关注“活字格低代码”

想了解更多信息,请联系我们, 随时掌握技术资源和产品动态