|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
竟发现没有太大的帮助。总觉得要用起来,感觉到不了位。因为公司机器的原因,一直没有安装vs.net(也从来没有用过)。以前做asp的时候一直用DW(感觉其代码联想功能不错),可现在到了asp.net却不习惯了。word良多时分,会有良多信息寄存在Word文档中。而我们必要把这些信息提掏出来,另做它用。而Word的格局是ms的秘密,不晓得有无NB人能够对其做字符流的剖析,归正我是没这才能也没这盘算。以是就只能用ms供应的组件来举行编程。但ms没有供应托管的类库,而是供应了对com组件的PIA转换。详细增加,利用和相干常识,能够拜见kaneboysblog中的http://blog.joycode.com/kaneboy/articles/67688.aspx。妙手的解说,非常明晰。
而我想做的是对word文档中的表信息举行提取。网上很难找到相干的代码(翻开一个已有文档,对其内容举行剖析),但我以为这类事情是很成心义的。写了一段小的Demo,以下:
objectoFileName=@"C:DocumentsandSettingsliushMyDocumentsTestDoc.doc";
objectoReadOnly=true;
objectoMissing=System.Reflection.Missing.Value;
Word._ApplicationoWord;
Word._DocumentoDoc;
oWord=newWord.Application();
oWord.Visible=true;//只是为了便利察看
oDoc=oWord.Documents.Open(refoFileName,refoMissing,refoReadOnly,refoMissing,refoMissing,
refoMissing,refoMissing,refoMissing,refoMissing,refoMissing,refoMissing,refoMissing);
//MessageBox.Show(oDoc.Tables.Count.ToString());
for(inttablePos=1;tablePos<=oDoc.Tables.Count;tablePos++)
{
Word.TablenowTable=oDoc.Tables.Item(tablePos);
stringtableMessage=string.Format("第{0}/{1}个表:
",tablePos,oDoc.Tables.Count);
for(introwPos=1;rowPos<=nowTable.Rows.Count;rowPos++)
{
for(intcolumPos=1;columPos<=nowTable.Columns.Count;columPos++)
{
tableMessage+=nowTable.Cell(rowPos,columPos).Range.Text;
tableMessage=tableMessage.Remove(tableMessage.Length-2,2);//removea
tableMessage+=" ";
}
tableMessage+="
";
}
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文档的操纵,代码以下:
DimfileNameAsString="C:DocumentsandSettingsliushMyDocumentsTestDoc.doc"
DimisReadOnlyAsBoolean=True
DimwordApplicationAsWord.Application=NewWord.Application()
DimwordDocumentAsWord.Document
wordApplication.Visible=True
wordDocument=wordApplication.Documents.Open(fileName,,isReadOnly)
以是,下次我要做COM操纵的时分,我还会回回我心爱的VB的。可是,用了太久的C#偏差愈来愈多了,动不动就习气性加括号,加分号。。。
PS:这些事情是帮我老妈做的。她们材料室想把材料目次信息存进数据库,然后创建网站便利检索和办理。这些目次信息本来是寄存在Word文档中的。这是她们第一次数字化的了局,那一次她们把一年夜堆纸质材料酿成了word文档。在她们确当时了解中,数字化就是依照本来的器材,连格局都稳定的酿成Word文档就好。如今他们对这些难于保护,难于检索的器材终究得到了耐烦,入手下手思索数据库和收集了。大概数字化也是一个头脑慢慢变化的历程。
刚刚打开这篇专题,猛然见到HAL9000发表的《对于大型公司项目平台选择j2ee的几层认识》系列,深受启发。 |
|