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

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

系統 2481 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條評論
主站蜘蛛池模板: 国产麻豆精品在线 | 99热在线免费观看 | 俄罗斯一级毛片免费视频 | 五月婷婷亚洲 | 国产手机精品一区二区 | 午夜一级 | 天天干天天操天天爱 | 色婷婷影视 | 免费观看欧美精品成人毛片 | 色丁香六月 | 一本久久a久久精品vr综合 | 色综合久久久久久久久久久 | 日韩欧美中文字幕在线视频 | 欧美在线激情视频 | 国产在线一区视频 | 色婷婷视频在线 | 日韩亚洲欧美性感视频影片免费看 | 亚洲毛片网站 | 欧美日韩中文字幕在线视频 | 久久天天丁香婷婷中文字幕 | 日韩欧美在线观看 | 99精品这里只有精品高清视频 | 日韩有码在线视频 | 国产女人综合久久精品视 | 九九这里只有精品 | 亚洲精品网址 | 国产在线拍国产拍拍偷 | 日韩xoxo视频在线观看 | 狠狠色噜噜狠狠狠狠97 | 国产不卡精品一区二区三区 | 久热这里只精品99国产6_99 | 狠狠五月婷婷 | 欧美色欧美亚洲高清在线视频 | 欧美日韩网站 | 九九在线观看高清免费 | 人人做天天爱夜夜爽中字 | 久久精品加勒比中文字幕 | 中文字幕在线播放一区 | 亚洲国产成人资源在线软件 | 国产二区三区毛片 | 日本在线三级 |