Interop Excel in PDMS
Abstract. There are many data stored in Excel during the design procedure. Read data from Excel can do some validation in PDMS, such as check the pressure for a given pipeline. Write Excel can make the MTO export automatically. So interop Excel in PDMS have practice significant.
Key Words. PDMS, Excel, Infragistics, AVEVA .Net
1.Introduction
在工程设计过程中有很多数据都是存储在Excel中,在PDMS中如果能读取这些Excel数据,可以对模型做一些校验工作,如检查管道的设计压力、设计温度等属性。而写Excel则可用于全自动生成公司材料报表的实现,即生成可直接打印的材料表,不需要人为再去统计、分类,提高效率。由此可见,在PDMS中读写Excel具有重要意义。
因为AVEVA .Net支持C#的程序开发,目前在C#中读写Excel的常见方式有:
v OleDb:用这种方法读取Excel速度还是非常快的,但这种方法读取数据的时候不太灵活。这种方法是将Excel作为一个数据源,直接使用SQL语句获取数据。优点:读取方式简单,速度快;缺点:除了读取过程不太灵活之外,当Excel数据量很大时,会很占用内存,不过一般情况下还是非常不错的。
v COM组件:这种方式需要先引用Microsoft.Office.Interop.Excel。优点:可以非常灵活地读写Excel中的数据;缺点:读取速度较慢,当Excel中数据量稍大时,会非常耗时。
v NPOI方式:NPOI是一组开源的组件,优点是读取Excel非常快,操作方式灵活。缺点:只支持03版的xls,xlsx无法读取,最新版本的已经可以支持xlsx文件的读取了。
v Infragistics Excel:Infragistics Excel是Infragistics品牌.Net应用程序下操作Excel表格的组件,同样也是托管代码。Infragistics系列控件是一套很好很强大的控件,PDMS程序的界面应该就是这套控件开发的。Infragistics Excel读写Excel速度快,性能较好。
本文主要介绍如何使用Infragistics Excel组件对Excel进行读写操作。掌握基本方法之后,可以结合实际开发出更完善的程序,提高工作效率。
2.Reading/Writing Excel
Infragistics Excel的组件在PDMS的安装目录中可以找到,如下图所示:
Figure 2.1 Infragistics Excel
根据PDMS版本的不同,使用的Infragistics版本也稍有不同。只要找到Infragistics中带有Excel应该就是了。C#的库一般命名规范,容易根据类名找到相关的用法。下面给出使用Infragistics读写Excel中的示例程序。
using System.Text;
using System.Collections.Generic;
using Infragistics.Excel;
namespace ExcelTest
{
class Program
{
static void Main( string [] args)
{
readTest();
writeTest();
}
static void readTest()
{
Workbook aWorkbook = Workbook.Load( " TestData.xls " );
Worksheet aWorksheet = aWorkbook.WindowOptions.SelectedWorksheet;
Console.WriteLine( " Reading Excel Test " );
for ( int i = 8 ; i < 60 ; i ++ )
{
Console.WriteLine(aWorksheet.GetCell( " A " + i.ToString()).Value);
}
}
static void writeTest()
{
Workbook aWorkbook = new Workbook();
Worksheet aWorksheet = aWorkbook.Worksheets.Add( " Test " );
Console.WriteLine( " Writing Excel Test " );
for ( int i = 1 ; i < 10 ; i ++ )
{
aWorksheet.GetCell( " A " + i.ToString()).Value = " test value " + i.ToString();
}
aWorkbook.Save( " TestBook.xls " );
}
}
}
读取Excel结果如下图所示:
Figure 2.2 Reading Excel Result
写Excel结果如下图所示:
Figure 2.3 Writing Excel Result
由上述示例可知,使用Infragistics来读写Excel还是很简单的。添加Infragistics Excel的引用后,可以打开其对象结构,查看下。根据这些类名及其相关函数,使用简单。
3.Conclusion
工程设计中的大部分数据都是在Excel中,且材料表之类的出版文件都是Excel形式。所以掌握使用程序对Excel进行读写,对提高办公自动化有重要意义。本文结合PDMS中的Infragistics控件来对PDMS中Excel的读写进行详细介绍。掌握方法后,也可以将这个控件应用到其他程序,前提是必须有Infragistics这套控件。
掌握Excel的读写方法,可以结合实际进行扩展,开发出功能更强大的程序。
4.References
1. Tsong Chen. C#读取Excel几种方法体会.
http://www.cnblogs.com/Tsong/archive/2013/02/21/2920941.html
2. http://www.infragistics.com/samples/silverlight/infragistics-excel/overview
PDF Version: Interop Excel in PDMS