日韩久久久精品,亚洲精品久久久久久久久久久,亚洲欧美一区二区三区国产精品 ,一区二区福利

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

系統 2439 0
?

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

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

????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 ;?????????????????? // 不顯示Word窗口
???????????? 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 ;?????????????????? // 不顯示Word窗口
???????????? 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文檔指定位置處理表格


更多文章、技術交流、商務合作、聯系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯系: 360901061

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

【本文對您有幫助就好】

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

發表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: 延津县| 兴和县| 都江堰市| 湄潭县| 平罗县| 荣成市| 监利县| 上饶市| 佛山市| 长乐市| 清丰县| 宁晋县| 通海县| 台州市| 刚察县| 武冈市| 凤台县| 曲松县| 鄂伦春自治旗| 公主岭市| 湘潭县| 当阳市| 灵宝市| 毕节市| 马山县| 大英县| 白城市| 泰安市| 瑞昌市| 新郑市| 邵阳县| 南康市| 霍邱县| 长乐市| 乌审旗| 西充县| 利辛县| 吐鲁番市| 青神县| 凤山县| 福安市|