专注于互联网--专注于架构

最新标签
网站地图
文章索引
Rss订阅

首页 »DotNet » word表格:C#实现Word中表格信息读取 »正文

word表格:C#实现Word中表格信息读取

来源: 发布时间:星期五, 2009年1月9日 浏览:47次 评论:0
  多时候会有很多信息存放在Word文档中而我们需要把这些信息提取出来另做它用而Word格式是ms机密不知道有没有NB人可以对其做分析反正我是没这能力也没这打算所以就只能用ms提供组件来进行编程但ms没有提供托管类库而是提供了对com组件PIA转换具体添加使用和相关知识可以参见kaneboy's blog中http://blog.joycode.com/kaneboy/articles/67688.aspx高手讲解很是清晰

  而我想做是对word文档中表信息进行提取网上很难找到相关代码(打开个已有文档对其内容进行分析)但我觉得这种工作是很有意义写了段小Demo如下:

object oFileName = @"C:Documents and SettingsliushMy DocumentsTestDoc.doc";
object oReadOnly = true;
object oMissing = .Reflection.Missing.Value;
Word._Application oWord;
Word._Document oDoc;
oWord = Word.Application;
oWord.Visible = true;//只是为了方便观察
oDoc = oWord.Documents.Open(ref oFileName, ref oMissing, ref oReadOnly, ref oMissing, ref oMissing,
  ref oMissing, ref oMissing, ref oMissing, ref oMissing, ref oMissing, ref oMissing, ref oMissing);
//MessageBox.Show(oDoc.Tables.Count.);
for ( tablePos = 1; tablePos <= oDoc.Tables.Count; tablePos)
{
  Word.Table nowTable = oDoc.Tables.Item(tablePos);
   tableMessage = .Format("第{0}/{1}个表:n", tablePos, oDoc.Tables.Count);
  for ( rowPos = 1; rowPos <= nowTable.Rows.Count; rowPos)
  {
for ( columPos = 1; columPos <= nowTable.Columns.Count; columPos)
{
tableMessage nowTable.Cell(rowPos, columPos).Range.Text;
tableMessage = tableMessage.Remove(tableMessage.Length - 2, 2);//remove ra
tableMessage "t";
}
tableMessage "n";
  }
  MessageBox.Show(tableMessage);
}


  如果看过了上面kaneboy文章(这是个系列)再看这段代码应该不会很难理解打开个已有文档然后遍历其中所有这里只是简单将信息显示出来具体实战上可以对这些信息进行分析做完这些后终于找到了些官方支持文档地址如下:

  http://msdn2.microsoft.com/zh-CN/library/y1xatbkd.aspx

  其中word任务有对word各种操作简单代码事例用vb和c#写看完的后我想每个人都会明白vb对com支持比c#不是简单明了点两点(可以看下这个http://blog.joycode.com/kaneboy/archive/2005/08/03/61489.aspx)同样代码用vb实现打开word文档操作代码如下:

Dim fileName As String = "C:Documents and SettingsliushMy DocumentsTestDoc.doc"
Dim isReadOnly As Boolean = True
Dim wordApplication As Word.Application = New Word.Application
Dim wordDocument As Word.Document
wordApplication.Visible = True
wordDocument = wordApplication.Documents.Open(fileName, , isReadOnly)


  所以下次我要做COM操作时候我还会回归我可爱VB但是用了太久C#毛病越来越多了动不动就习惯性加括号加分号

  PS:这些工作是帮我老妈做她们资料室想把资料目录信息存入数据库然后建立网站WebSite方便检索和管理这些目录信息原先是存放在Word文档中这是她们第次数字化结果次她们把大堆纸质资料变成了word文档在她们当时理解中数字化就是按照原来东西连格式都不变变成Word文档就好现在他们对这些难于维护难于检索东西终于失去了耐性开始考虑数据库和网络了也许数字化也是个思维逐步转变过程

0

相关文章

读者评论

发表评论

  • 昵称:
  • 内容: