首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > VBA >

怎么编程实现(1)读取excel中内容(2)按特定格式编辑word文档

2012-02-04 
如何编程实现(1)读取excel中内容(2)按特定格式编辑word文档工作需要:要求编写一个程序,读取给定的excel文

如何编程实现(1)读取excel中内容(2)按特定格式编辑word文档
工作需要:
  要求编写一个程序,读取给定的excel文件中的内容,经过一些处理后组织成文本形式(非表格形式),在word文档中按照一定的格式及排版输出(比如分别对特定的内容设置大标题、小标题、加粗、下划线,或者在某两行之间空一行等等)。

我之前从未接触过与office相关的开发,所以完全不知道,应该选择什么语言或者编程工具比较方便。另外也请赐教设计的大体思路是怎样,会用到这门语言(编程工具)中的哪些技术(函数)等。
 

[解决办法]
Excel文件中的内容是什么?

我觉得大致思路是在Excel中写VBA,通过VBA生成Word文档。
Word文档中的内容根据Excel中内容进行输出。

或者使用C#做一个小工具也可以。
引用 Microsoft.Office.Interop.Excel就可以使用Excel提供的API了。


[解决办法]
添加库的引用:
1)从“项目”菜单上“添加引用”对话框的“COM”选项卡中添加对类型库的引用
2)Imports Microsoft.Office.Interop.Word
Office类型库版本:?
1)Mircosoft.Office.Interop.Excel:2003-11.0;2007-12.0
2)Mircosoft.Office.Interop.Word:2003-11.0;2007-12.0
3)Mircosoft.Office.Tools.Word:2003-9.0
Dim,Let,Set 
Dim用来声明变量的(Const设置常量)
Let给变量赋值(可以省略)
Set给对象赋值(可以省略)
Dim xlApp as Microsoft.Office.Interop.Excel.Application
Dim xlBook as Microsoft.Office.Interop.Excel.Workbook
Dim xlSheet as Microsoft.Office.Interop.Excel.Worksheet
Dim wdApp as Microsoft.Office.Interop.Word.Application
Dim wdDoc as Microsoft.Office.Interop.Word.Document
注意不是Worksheets和Documents,复数表示方法函数等集合
以上对象可以分别独立实例化,也可以直接用一串对象和子对象的值表示,如:
读取Excel单元格内容(参照上条内容)
Workbook.Worksheets(n).Cells(x,y).Value 
//仅有Cells(x,y)是单元格对象,Cells(x,y).Value才是单元格的值
//Worksheets()中的参数可以是sheet序号,也可以是sheet名字符串
//.Value不会自动识别,必须手动添加!
Office对象的visable属性
Dim xlApp as Microsoft.Office.Interop.Excel.Application
xlApp.Visiable=True
//表示所有对xlApp所代表的.xls文件的操作(打开.xls文件,选中某个sheet中的某个cell,并将字符逐个输入其中)都会展示出来,就好象有人在当面操作一样


读Excel2007单元格(字符串)
((Microsoft.Office.Interop.Excel.Range)xlSheet.Cells[i,1]).Value2.ToString()
若用.Cells[I,j].ToString()则读出来的内容统统都是System.Object
判断Excel2007单元格是否有内容
xlSheet.Cells[I,j]!=null//error,永远不为null
xlSheet.Cells[I,j].Value2!=null//error,语法错误
((Microsoft.Office.Interop.Excel.Range)xlSheet.Cells[i,j]).Value2.ToString()//error,若为空则直接报错
((Microsoft.Office.Interop.Excel.Range)xlSheet.Cells[i,j]).Value2!=””//error,永远部位null
((Microsoft.Office.Interop.Excel.Range)xlSheet.Cells[i,j]).Value2!=null//ok
读取Excel2007单元格的值(包括多行大文本)
((Microsoft.Office.Interop.Excel.Range)xlSheet.Cells[i,j]).Value2.ToString();
即Value2.ToString()后可以赋给String或String类型的DataTable.Rows[i][j]等数据类型。

热点排行