Office开发

C# Office开发
最近要做一个处理Excel和Word文档的小程序,因为是新接触此类东东,因此在这里将这次开发的经历记录下来。 刚刚在网上查了很此类资料,大多要在代码中引入一个命名空间"Microsoft.Office"之类,可是这之前需要导入组件"Excel.dll和Word.dll"(与引类似).这样才可以引入命名空间“Excel;”,接下来就是写代码了...... (注: 1.要保证机器本身要安装OFFICE. 2.把[C:Program FilesMicrosoft OfficeOffice:默认安装路径]下的EXCEL9.OLB文件拷贝到c盘根目录下(如果没有OLB文件,可以用Excel.exe) 3.打开Visual Studio .Net2003命令提示,运行TlbImp Excel9.olb Excel.dll ,就会在c盘根目录下下生成Excel.dll、Office.dll、VBIDE.dll组件。 4.在项目中添加Excel.dll引用就OK了) (需要注意的地方:1、程序会把EXCLE表中的第一行记录作为列名;2、在使用EXCLE表的时候,要在表名后面加上符号$)Excel.Application excel = new Excel.Application();//创建excel对象 excel.Workbooks.Add(true);//创建excel工作薄 Office开发 (二) 简单的打开保存Excel代码如下: private void btnExcel_Click(object sender, EventArgs e) { Excel.Workbooks wb = null; Excel.Application excelKccx=null; try { excelKccx = new Excel.Application(); object rmiss = System.Reflection.Missing.Value; wb=excelKccx.Workbooks; wb.Open(@"C:Documents and Settingsywg桌面短信报表 est.xls", rmiss, rmiss, rmiss, rmiss, rmiss, rmiss, rmiss, rmiss, rmiss, rmiss, rmiss, rmiss, rmiss, rmiss); excelKccx.Visible = true;//使excel可见*/ excelKccx.Save(@"c:1.xls"); } catch (Exception err) { } finally { excelKccx.Quit(); wb.Close(); } } 简单的打开保存Word代码如下: private void btnWord_Click(object sender, EventArgs e) { Word.Application word = new Word.Application(); object obj=System.Reflection.Missing.Value; string filename="d:\test.doc"; object file = (object)filename; Word.Document docu = word.Documents.Open(ref file, ref obj, ref obj, ref obj, ref obj, ref obj, ref obj, ref obj, ref obj, ref obj, ref obj, ref obj, ref obj, ref obj, ref obj); word.Visible = true; foreach(Word.Bookmark bm in docu.Bookmarks) { switch(bm.Name) { case "book1": bm.Range.Text = "Book1"; break; case "book2": bm.Range.Text = "Book2"; break; case "book3": bm.Range.Text = "Book3"; break; default: bm.Range.Text = "其它"; break; } } file = (object)"c:\test111.doc"; docu.SaveAs(ref file, ref obj, ref obj, ref obj, ref obj, ref obj, ref obj, ref obj, ref obj, ref obj, ref obj, ref obj, ref obj, ref obj,ref obj,ref obj); } Office开发 (三) Excel2003连接字符串: @"Provider = Microsoft.Jet.OLEDB.4.0; Data Source =Excel文件路径;Extended Properties=Excel 8.0;"

你所不知道的另一个 Office 开发语言VSTO介绍
VSTO(Visual Studio Tools for Office )是一套用于创建自定义Office应用程序的Visual Studio工作环境下的工具包,微软希望用它来替代现有工作在VBE工作环境的Office开发软件VBA(Visual Basic for Applications)。现有VBA的是是Visual Basic语言的子集体,基于VB6.0版本,应用了很长时间,因其学习掌握相对简单、免费应用,所以广泛应用于微软的办公软件的开发平台,并且从早期Office到现今的Office 2016一直支持VBA。但面对VBA这样的VB脚本语言,开发环境显得简单,功能不够丰富,并且需要把代码分别嵌入到每个文件中去,如果出现bug或者项目需要升级,得重新打开文档进行修改,低效率在企业级应用中是无法容忍。另外VBA代码安全保性相对于其他环境完整、功能丰富的高级语言显得非常弱,不适于商业和企业大数据的开发。因此,微软想用Visual Studio .NET和.NET Framework来解决这些问题,VSTO应运而生。它可以用Visual Basic 或者Visual C#扩展Office应用程序(例如Word、Excel、InfoPath和Outlook),借助强大的Visual Studio开发环境来定制程序,无论是创建简单的数据录入应用程序还是复杂的企业解决方案,VSTO都使之变得容易。事实上,VSTO并不是新鲜事物,微软从Office2000开始就有VSTO 1.0版本支持,Office 2003的VSTO 2.0、Office 2007的VSTO 3.0、Office 2010的VSTO 2010、Office2013的VSTO 2012直至Office 2016的 VSTO 2013。为什么这么多版本,开发者很少,甚至有的人听都没听过呢?我认为,学习成本(就是学习难易度)影响了它的普及,想想学习编程对绝大多数人的来讲就很难,更不要说号称编程语言逻辑最严密的C系列语言。也许看到这一点,微软一直在Office中内嵌VBA。所以,对Office进行二次开发,对于非专业程序开发才来讲,VBA还是最容易掌握、成本最低的语言。

Office 开发版本号与版本对应关系 详解
判断 Office 版本office97 : 8.0office2000 : 9.0officeXP(2002) : 10.0office2003 : 11.0office2007: 12.0office2010 : 14.0office2013: 15.0 MsgBoxThisWorkbook.CalculationVersion 获取一个数字,该数字指示上次对工作簿进行完全重新计算的 Excel的版本。