C#讀取Word表格中的數據
系統
2019-08-12 09:26:50
2941 0
1.關于 Interop.Word類庫 ?
(本文提到關于word鏈接庫引用無法使用的問題,很實用)
今天練習C#操作Word文檔,首先要引入類庫(Microsoft.Office.Interop.Word?),可是在我機器上無法引用,于是找其原因是沒有安裝“Office 2003 主 Interop 程序集”.
安裝方法(網上介紹的):運行office2003安裝程序,選擇“添加或刪除組件”,->勾選“高級自定義應用程序”,->展開特定于應用程序的節點。要獲取 Microsoft Office?word 2003 PIA,請展開
Microsoft Office?word
節點并選擇
.NET Programmability Support(.net可編程支持)
。單擊
.NET Programmability Support (.net可編程支持)
旁邊的下拉箭頭以選擇更新選項,并選取
Run from My Computer(從本機運行)。然后點擊“更新”按鈕。完成!
可是問題來了:
我下載的這個office2003(盜版)安裝程序打開后沒有
.NET Programmability Support (.net可編程支持)這個選項
不能就此罷手,添加引用->COM->找到microosft?word?11.0?object?Library,選擇,確定.
?
引用:
?
using
?Word;
?
運行程序通過,搞定.
?
?
【摘自】?
http://tmsoft.lsxy.com/trackback.php?tbID=334&extra=2aa67d
? 周老師科研站
前提:
導入COM庫:Microsoft word 11.0 Object Library.
引用里面就增加了:
創建新Word
????????????
object
?oMissing?
=
?System.Reflection.Missing.Value;
????????????Word._Application?oWord;
????????????Word._Document?oDoc;
????????????oWord?
=
?
new
?Word.Application();
????????????oWord.Visible?
=
?
true
;
????????????oDoc?
=
?oWord.Documents.Add(
ref
?oMissing,?
ref
?oMissing,
????????????????
ref
?oMissing,?
ref
?oMissing);
打開文檔:
????????????
object
?oMissing?
=
?System.Reflection.Missing.Value;
????????????Word._Application?oWord;
????????????Word._Document?oDoc;
????????????oWord?
=
?
new
?Word.Application();
????????????oWord.Visible?
=
?
true
;
????????????
object
?fileName?
=
?
@"
E:CCCXCXXTestDoc.doc
"
;
????????????oDoc?
=
?oWord.Documents.Open(
ref
?fileName,
????????????
ref
?oMissing,?
ref
?oMissing,?
ref
?oMissing,?
ref
?oMissing,?
ref
?oMissing,
????????????
ref
?oMissing,?
ref
?oMissing,?
ref
?oMissing,?
ref
?oMissing,?
ref
?oMissing,
????????????
ref
?oMissing,?
ref
?oMissing,?
ref
?oMissing,?
ref
?oMissing,?
ref
?oMissing);
導入模板
????????????
object
?oMissing?
=
?System.Reflection.Missing.Value;
????????????Word._Application?oWord;
????????????Word._Document?oDoc;
????????????oWord?
=
?
new
?Word.Application();
????????????oWord.Visible?
=
?
true
;
????????????
object
?fileName?
=
?
@"
E:XXXCCXTest.doc
"
;
????????????oDoc?
=
?oWord.Documents.Add(
ref
?fileName,?
ref
?oMissing,
????????????????????????????
ref
?oMissing,?
ref
?oMissing);
.添加新表
????????????
object
?oMissing?
=
?System.Reflection.Missing.Value;
????????????Word._Application?oWord;
????????????Word._Document?oDoc;
????????????oWord?
=
?
new
?Word.Application();
????????????oWord.Visible?
=
?
true
;
????????????oDoc?
=
?oWord.Documents.Add(
ref
?oMissing,?
ref
?oMissing,
????????????????
ref
?oMissing,?
ref
?oMissing);
????????????
object
?start?
=
?
0
;
????????????
object
?end?
=
?
0
;
????????????Word.Range?tableLocation?
=
?oDoc.Range(
ref
?start,?
ref
?end);
????????????oDoc.Tables.Add(tableLocation,?
3
,?
4
,?
ref
?oMissing,?
ref
?oMissing);
.表插入行
????????????
object
?oMissing?
=
?System.Reflection.Missing.Value;
????????????Word._Application?oWord;
????????????Word._Document?oDoc;
????????????oWord?
=
?
new
?Word.Application();
????????????oWord.Visible?
=
?
true
;
????????????oDoc?
=
?oWord.Documents.Add(
ref
?oMissing,?
ref
?oMissing,
????????????????
ref
?oMissing,?
ref
?oMissing);
????????????
object
?start?
=
?
0
;
????????????
object
?end?
=
?
0
;
????????????Word.Range?tableLocation?
=
?oDoc.Range(
ref
?start,?
ref
?end);
????????????oDoc.Tables.Add(tableLocation,?
3
,?
4
,?
ref
?oMissing,?
ref
?oMissing);
????????????Word.Table?newTable?
=
?oDoc.Tables[
1
];
????????????
object
?beforeRow?
=
?newTable.Rows[
1
];
????????????newTable.Rows.Add(
ref
?beforeRow);
.單元格合并
????????????
object
?oMissing?
=
?System.Reflection.Missing.Value;
????????????Word._Application?oWord;
????????????Word._Document?oDoc;
????????????oWord?
=
?
new
?Word.Application();
????????????oWord.Visible?
=
?
true
;
????????????oDoc?
=
?oWord.Documents.Add(
ref
?oMissing,?
ref
?oMissing,
????????????????
ref
?oMissing,?
ref
?oMissing);
????????????
object
?start?
=
?
0
;
????????????
object
?end?
=
?
0
;
????????????Word.Range?tableLocation?
=
?oDoc.Range(
ref
?start,?
ref
?end);
????????????oDoc.Tables.Add(tableLocation,?
3
,?
4
,?
ref
?oMissing,?
ref
?oMissing);
????????????Word.Table?newTable?
=
?oDoc.Tables[
1
];
????????????
object
?beforeRow?
=
?newTable.Rows[
1
];
????????????newTable.Rows.Add(
ref
?beforeRow);
????????????Word.Cell?cell?
=
?newTable.Cell(
1
,?
1
);
????????????cell.Merge(newTable.Cell(
1
,?
2
));
.單元格分離
????????????
object
?oMissing?
=
?System.Reflection.Missing.Value;
????????????Word._Application?oWord;
????????????Word._Document?oDoc;
????????????oWord?
=
?
new
?Word.Application();
????????????oWord.Visible?
=
?
true
;
????????????oDoc?
=
?oWord.Documents.Add(
?oMissing,?
ref
?oMissing);
????????????
object
?start?
=
?
0
;
????????????
object
?end?
=
?
0
;
????????????Word.Range?tableLocation?
=
?oDoc.Range(
ref
?start,?
ref
?end);
????????????oDoc.Tables.Add(tableLocation,?
3
,?
4
,?
ref
?oMissing,?
ref
?oMissing);
????????????Word.Table?newTable?
=
?oDoc.Tables[
1
];
????????????
object
?beforeRow?
=
?newTable.Rows[
1
];
????????????newTable.Rows.Add(
ref
?beforeRow);
????????????Word.Cell?cell?
=
?newTable.Cell(
1
,?
1
);
????????????cell.Merge(newTable.Cell(
1
,?
2
));
????????????
object
?Rownum?
=
?
2
;
????????????
object
?Columnnum?
=
?
2
;
????????????cell.Split(
ref
?Rownum,?
ref
??Columnnum);
通過段落控制插入
????????????
object
?oMissing?
=
?System.Reflection.Missing.Value;
????????????
object
?oEndOfDoc?
=
?
"
\endofdoc
"
;?
/**/
/*
?endofdoc?is?a?predefined?bookmark?
*/
????????????
//
Start?Word?and?create?a?new?document.
????????????Word._Application?oWord;
????????????Word._Document?oDoc;
????????????oWord?
=
?
new
?Word.Application();
????????????oWord.Visible?
=
?
true
;
????????????oDoc?
=
?oWord.Documents.Add(
ref
?oMissing,?
ref
?oMissing,
????????????????
ref
?oMissing,?
ref
?oMissing);
????????????
//
Insert?a?paragraph?at?the?beginning?of?the?document.
????????????Word.Paragraph?oPara1;
????????????oPara1?
=
?oDoc.Content.Paragraphs.Add(
ref
?oMissing);
????????????oPara1.Range.Text?
=
?
"
Heading?1
"
;
????????????oPara1.Range.Font.Bold?
=
?
1
;
????????????oPara1.Format.SpaceAfter?
=
?
24
;????
//
24?pt?spacing?after?paragraph.
????????????oPara1.Range.InsertParagraphAfter();
C#讀取Word表格中的數據
更多文章、技術交流、商務合作、聯系博主
微信掃碼或搜索:z360901061
微信掃一掃加我為好友
QQ號聯系: 360901061
您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對您有幫助就好】 元
喜歡作者