亚洲免费在线-亚洲免费在线播放-亚洲免费在线观看-亚洲免费在线观看视频-亚洲免费在线看-亚洲免费在线视频

C#在Word文檔指定位置處理表格

系統(tǒng) 2426 0
?

??? 正在做的項目里,需要開發(fā)一個小工具,將需要的數(shù)據(jù)插入到Word文檔中。這當中有一項需求,要求能夠在Word文檔中某處插入表格,或者刪除該處表格。

????這個小工具是在VS.Net2005、Office2007下開發(fā)的。

????1、在Word文檔中插入一個書簽,書簽名稱為“tl”;

??? 2、在VS2005新建一個C#項目,然后在引用中添加Word類庫;由于我使用的是Office2007,因此選擇的是"Microsoft Word 12.0?Object Library",如果你使用的是Office2003,就應該選擇11.0;

??? 3、在代碼頂部添加對Word類庫的引用;

using ?Word? = ?Microsoft.Office.Interop.Word;

??? 4、打開Word文檔

object ?missingValue? = ?System.Reflection.Missing.Value;
????????????
object ?myTrue? = ? false ;?????????????????? // 不顯示W(wǎng)ord窗口
???????????? object ?fileName? = ? @" F:\Doc1.doc " ;
????????????Word._Application?oWord?
= ? new ?Word.ApplicationClass();
????????????Word._Document?oDoc;
????????????oDoc?
= ?oWord.Documents.Open( ref ?fileName,? ref ?missingValue,
???????????????
ref ?myTrue,? ref ?missingValue,? ref ?missingValue,? ref ?missingValue,
???????????????
ref ?missingValue,? ref ?missingValue,? ref ?missingValue,
???????????????
ref ?missingValue,? ref ?missingValue,? ref ?missingValue,
???????????????
ref ?missingValue,? ref ?missingValue,? ref ?missingValue,
???????????????
ref ?missingValue);

??? 5、找到剛才添加的書簽

object ?tmp? = ? " t1 " ;
????????????????Word.Range?startRange?
= ?oWord.ActiveDocument.Bookmarks.get_Item( ref ?tmp).Range;

??? 6、刪除在該位置的表格

Word.Table?tbl? = ?startRange.Tables[ 1 ];
tbl.Delete();

??? 如果書簽所在的位置并沒有插入表格,程序并不會刪除該位置下面的表格,而是會拋出異常,報錯。

??? 7、插入表格,并劃線

// 添加表格
oDoc.Tables.Add(startRange,? 5 ,? 4 ,? ref ?missingValue,? ref ?missingValue);

// 為表格劃線
startRange.Tables[ 1 ].Borders[WdBorderType.wdBorderTop].LineStyle? = ?WdLineStyle.wdLineStyleSingle;
startRange.Tables[
1 ].Borders[WdBorderType.wdBorderLeft].LineStyle? = ?WdLineStyle.wdLineStyleSingle;
startRange.Tables[
1 ].Borders[WdBorderType.wdBorderRight].LineStyle? = ?WdLineStyle.wdLineStyleSingle;
startRange.Tables[
1 ].Borders[WdBorderType.wdBorderBottom].LineStyle? = ?WdLineStyle.wdLineStyleSingle;
startRange.Tables[
1 ].Borders[WdBorderType.wdBorderHorizontal].LineStyle? = ?WdLineStyle.wdLineStyleSingle;
startRange.Tables[
1 ].Borders[WdBorderType.wdBorderVertical].LineStyle? = ?WdLineStyle.wdLineStyleSingle;

??? 全部的代碼如下:

object ?missingValue? = ?System.Reflection.Missing.Value;
????????????
object ?myTrue? = ? false ;?????????????????? // 不顯示W(wǎng)ord窗口
???????????? object ?fileName? = ? @" F:\Doc1.doc " ;
????????????Word._Application?oWord?
= ? new ?Word.ApplicationClass();
????????????Word._Document?oDoc;
????????????oDoc?
= ?oWord.Documents.Open( ref ?fileName,? ref ?missingValue,
???????????????
ref ?myTrue,? ref ?missingValue,? ref ?missingValue,? ref ?missingValue,
???????????????
ref ?missingValue,? ref ?missingValue,? ref ?missingValue,
???????????????
ref ?missingValue,? ref ?missingValue,? ref ?missingValue,
???????????????
ref ?missingValue,? ref ?missingValue,? ref ?missingValue,
???????????????
ref ?missingValue);
????????????
try
????????????
{
????????????????
object ?tmp? = ? " t1 " ;
????????????????Word.Range?startRange?
= ?oWord.ActiveDocument.Bookmarks.get_Item( ref ?tmp).Range;

????????????????
// 刪除指定書簽位置后的第一個表格
????????????????Word.Table?tbl? = ?startRange.Tables[ 1 ];
????????????????tbl.Delete();

????????????????
// 添加表格
????????????????oDoc.Tables.Add(startRange,? 5 ,? 4 ,? ref ?missingValue,? ref ?missingValue);

????????????????
// 為表格劃線
????????????????startRange.Tables[ 1 ].Borders[WdBorderType.wdBorderTop].LineStyle? = ?WdLineStyle.wdLineStyleSingle;
????????????????startRange.Tables[
1 ].Borders[WdBorderType.wdBorderLeft].LineStyle? = ?WdLineStyle.wdLineStyleSingle;
????????????????startRange.Tables[
1 ].Borders[WdBorderType.wdBorderRight].LineStyle? = ?WdLineStyle.wdLineStyleSingle;
????????????????startRange.Tables[
1 ].Borders[WdBorderType.wdBorderBottom].LineStyle? = ?WdLineStyle.wdLineStyleSingle;
????????????????startRange.Tables[
1 ].Borders[WdBorderType.wdBorderHorizontal].LineStyle? = ?WdLineStyle.wdLineStyleSingle;
????????????????startRange.Tables[
1 ].Borders[WdBorderType.wdBorderVertical].LineStyle? = ?WdLineStyle.wdLineStyleSingle;

????????????}

????????????
catch
????????????
{
????????????????
// 異常處理
????????????}


????????????
object ?bSaveChange? = ? true ;
????????????oDoc.Close(
ref ?bSaveChange,? ref ?missingValue,? ref ?missingValue);
????????????oDoc?
= ? null ;
????????????oWord?
= ? null ;

??? 代碼很簡單,在寫這實例的過程中我參考了如下資料:
???? Word對象模型概述

??? Word任務

C#在Word文檔指定位置處理表格


更多文章、技術(shù)交流、商務合作、聯(lián)系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯(lián)系: 360901061

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對您有幫助就好】

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會非常 感謝您的哦!!!

發(fā)表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: 婷婷色网站 | 免费精品99久久国产综合精品 | 神马在线影视我不卡 | 天天天天天天天操 | 精品日韩一区二区三区视频 | 一级毛片在线播放 | 亚洲国产二区三区 | 国产亚洲精品久久 | 午夜欧美性欧美 | 中文字幕亚洲精品日韩精品 | 日韩欧美区 | 在线手机福利免费福利院 | 一级片播放 | 91国自产精品中文字幕亚洲 | 欧美国产亚洲精品高清不卡 | 九九精品免视看国产成人 | 性做久久久久久久 | 国产精品资源站 | 一区二区三区成人 | 成人亚洲欧美 | 久久综合图片 | 国产高清国产精品国产k | 一级特级aaaa毛片免费观看 | 欧美一级高清在线观看 | 久久频精品99香蕉国产 | 国产精品成人久久久 | 一级一级毛片免费播放 | 色婷婷色婷婷 | 简单视频在线播放jdav | 美日韩免费视频 | 中文字幕区 | 国产尤物福利视频在线观看 | 欧美vs日韩vs国产在线观看 | 亚洲欧美日韩综合在线 | 一线毛片 | 国产成人a一在线观看 | 久久精品国产久精国产80cm | 日本欧美精品 | 久热这里只有精品视频6 | 伊人久久免费 | 99热这里只有精品2 99热这里只有精品3 |