Office PIA经验谈
文章平均质量分 83
Office PIA并非唯一的读/写Office文档的方法,需要依赖于Office Application,但它在满足依赖条件的情况下也确实是一种很有效的方法。本人恰好前一段时间做了一些相关的编程,愿意与您共同分享这方面的经验。
YapingXin
航天/航空/军工装备行业,航电系统、遥测/测发控系统、系统故障诊断、预测与健康管理(PHM)高级系统架构师。
展开
-
Office PIA:关于Office PIA应用程序的部署
基于Office PIA的应用程序,要想在客户的电脑上顺利地运行起来,可以有这几种办法:方法一:让客户在安装Office的时候顺便安装“.Net可编程性支持”(.Net Programmability Support)看截图,不解释:方法二:让客户安装Office PIA比如说Office 2007的PIA:在微软网站的下载频道搜索“Office 2007原创 2012-03-14 14:19:01 · 15275 阅读 · 4 评论 -
Office PIA:代码示例:生成Excel文件的ExcelApp类
这个类的设计背景是:我需要兼容Excel 2007和Excel 2010的App。我只需要考虑写文件而不用考虑读文件。我只实现了一些必需的功能(可能其中没有涵盖您所需要的功能,但不难扩展)。我只需要输出Excel 97-2003 Workbook (*.xls) 这种格式。此格式对应的枚举值是:XlFileFormat.xlExcel8我引用了Excel 2007的PIA和部署相关的问原创 2012-02-17 18:45:33 · 5053 阅读 · 0 评论 -
Office PIA:注意Office App进程的管理
在Office PIA应用程序中,对Office App的管理不容忽视。在正常情况下,程序launch office app以后,通过interop的COM组件进行文档操作,然后保存、关闭office app。但这个过程在出错的情况下,office app可能还没有关闭,并且依然占用着所操作的文件,这当然不是我们期望看到的。以ExcelApp这个类为例,看看我在里面是怎么考虑的。以下贴出一原创 2012-02-17 18:30:38 · 1954 阅读 · 0 评论 -
Office PIA:绕过Bug Q320369:Old format or invalid type library" error when automating Excel
测试一定要充分!接上回书,话说我提交了Office PIA的代码以后,测试的同学就展开了充分的测试。在此之前我可是信心满满的,自以为已经做了充分的测试了,应该测不出什么bug来了。可是,很快,测试的同学就报了一个Exception issue给我:System.Runtime.InteropServices.COMException (0x80028018): Old format or原创 2012-02-13 18:22:42 · 2875 阅读 · 0 评论 -
当Office PIA遭遇C# 4.0
上回书说到,最近我在写一个Office PIA的程序。我先是写了一个独立的小工程,完美地实现了对Excel Workbook的各种操作,并且也反复作了测试。然后往我们真实的项目里合并。这里有个伏笔:我们team用的是Visual Studio 2008,而我个人用的是Visual Studio 2010。我没忘记在我的Visual Studio 2010工程里面把.Net Framework的原创 2012-02-13 17:05:36 · 3279 阅读 · 4 评论 -
Office 2003 PIA编程的问题:文件保存为XlFileFormat.xlExcel7格式时Range.Merge()失效
先抱怨一下:最近在写一个极其恶心的程序:生成Excel reporting。说这个程序恶心,是因为,实现这个报表的方法有很多,我却不得不用我心目中最差的一种方式来实现。先说说我心目中最好的方式:应该是用NPOI这样的开源库来实现。这个开源库可以脱离开Office软件来独立地生成Excel文件(包括.xls格式和.xlsx格式)。其实实现这种功能的开源库很多,为什么用NPOI呢?因为:N原创 2012-02-06 00:34:14 · 6933 阅读 · 16 评论 -
C# Tips: 解决Office PIA编程中的方法冲突
欲调用Excel.Worksheet的Activate方法,结果遇到了以下Warning:Ambiguity between method 'Microsoft.Office.Interop.Excel._Worksheet.Activate()' and non-method 'Microsoft.Office.Interop.Excel.DocEvents_Event.Activate原创 2012-01-31 19:39:57 · 2115 阅读 · 0 评论