eryar

PipeCAD - Plant Piping Design Software.
RvmTranslator - Translate AVEVA RVM to OBJ, glTF, etc.
posts - 603, comments - 590, trackbacks - 0, articles - 0

Interop Excel in PDMS

Posted on 2015-12-29 23:37 eryar 阅读(2026) 评论(0)  编辑 收藏 引用 所属分类: 4.AVEVA Solution

Interop Excel in PDMS

eryar@163.com

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

wps_clip_image-10741

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

wps_clip_image-19510

Figure 2.2 Reading Excel Result

写Excel结果如下图所示:

wps_clip_image-9525

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


只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理