Interop Excel in PDMS

Interop Excel in PDMS

[email protected]

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的安装目录中可以找到,如下图所示:

Interop Excel in PDMS_第1张图片

Figure 2.1 Infragistics Excel

根据PDMS版本的不同,使用的Infragistics版本也稍有不同。只要找到Infragistics中带有Excel应该就是了。C#的库一般命名规范,容易根据类名找到相关的用法。下面给出使用Infragistics读写Excel中的示例程序。

 

using  System;
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结果如下图所示:

Interop Excel in PDMS_第2张图片

Figure 2.2 Reading Excel Result

写Excel结果如下图所示:

Interop Excel in PDMS_第3张图片

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

你可能感兴趣的:(Interop Excel in PDMS)