Interop Excel in PDMS
Posted on 2015-12-29 23:37 eryar 閱讀(2068) 評論(0) 編輯 收藏 引用 所屬分類: 4.AVEVA SolutionInterop 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