青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

codeArt

codeArt

c++操作word接口

注意事項(xiàng):1多用Range,少用Selection,因?yàn)閃ord中,Selection對象只有一個(gè)。
【1】開啟word
_ApplicationPtr word_app;
HRESULT hr 
= word_app.CreateInstance("Word.Application", NULL); 
【2】新建一個(gè)文檔
COleVariant vTrue((short)TRUE),vFalse((short)FALSE),vOpt((long)DISP_E_PARAMNOTFOUND, VT_ERROR);
DocumentsPtr docs;
_DocumentPtr oDoc;
docs 
= word_app->GetDocuments();
doc 
= docs->Add(vOpt, vOpt, vOpt, vOpt);  
【3】設(shè)置文檔的頁面布局
PageSetupPtr page_setup = doc->GetPageSetup();
page_setup
->PutTopMargin(0);
page_setup
->PutBottomMargin(0);
page_setup
->PutRightMargin(0);
page_setup
->PutLeftMargin(0);
【4】插入文本
SelectionPtr selection;
selection 
= word_app->GetSelection();
_ParagraphFormatPtr parafmt 
= selection->GetParagraphFormat();
parafmt
->PutLineSpacingRule(wdLineSpaceExactly);
parafmt
->PutLineSpacing(50);
_FontPtr font;
font 
= oSel->GetFont();
font
->PutBold(1);
font
->PutColor(wdColorGreen);
font
->PutSize(20);
font
->PutName(_T("宋體"));
selection
->TypeText("ABC");
oSel
->TypeParagraph();
oSel
->TypeText("12345678901234567890");
oSel
->TypeParagraph();
【5】插入文本框
ShapesPtr shapes = doc->GetShapes();
ShapePtr textbox 
=  shapspp->AddTextbox(Office::msoTextOrientationHorizontal, 11100100);
【6】文本框中插入文本
 1ShapesPtr shapes = doc->GetShapes();
 2ShapePtr textbox =  shapspp->AddTextbox(Office::msoTextOrientationHorizontal, 11100100);
 3TextFramePtr textframe = textbox->GetTextFrame();
 4RangePtr range = textframe->GetTextRange();
 5long insert_before_count = range->Characters->GetCount();
 6range->InsertAfter("TEXT");
 7if (insert_before_count != 1)
 8    range->MoveStart(COleVariant((long)Word::wdCharacter), COleVariant(insert_before_count-1));
 9if(range != 0)
10{
11    _FontPtr font = range->GetFont();
12    font->PutBold(isBold);
13    font->PutItalic(isItalic);
14    font->PutColor((Word::WdColor)FontColor());
15    font->PutSize(FontSize);
16    font->PutName(FontType().c_str());
17}
【7】設(shè)置文本框的屬性
1textbox->GetTextFrame()->PutAutoSize(Office::msoAutoShape);
2textbox->GetTextFrame()->PutMarginBottom(0);
3textbox->GetTextFrame()->PutMarginTop(0);
4textbox->GetTextFrame()->PutMarginLeft(0);
5textbox->GetTextFrame()->PutMarginRight(0);
6textbox->GetLine()->PutVisible(Office::msoFalse);
7textbox->GetFill()->PutTransparency(1);
【8】插入圖片,這里需要注意,必須得先用InlineShape,這樣可以把圖片插入到指定的頁中,不然,所有的圖片只在第一頁。
 1ShapesPtr shapes = m_WordDoc->GetShapes();
 2InlineShapesPtr inline_shapes = selection_doc->GetRange()->GetInlineShapes();
 3InlineShapePtr inline_shape = inline_shapes->AddPicture(“picture_path”, COleVariant((long)0), COleVariant((long)1));
 4ShapePtr shape = inline_shape->ConvertToShape();
 5shape->PutWidth(width);
 6shape->PutHeight(hehight());
 7shape->PutTop(Y);
 8shape->PutLeft(X);
 9if(shape->GetType() == Office::msoPicture)
10{
11    Word::WrapFormatPtr wrapp = shape->GetWrapFormat();
12    wrapp->PutType(Word::wdWrapBehind);
13}

14
【9】插入直線
1ShapesPtr shapes = doc->GetShapes();
2Word::ShapePtr line = shapes->AddLine(x1,y1, x2,y2);
3if (line->GetType() == Office::msoLine)
4{
5    Word::LineFormatPtr LineFmt = line->GetLine();
6    LineFmt->PutWeight(lr->weight_);
7}
【10】插入分隔符
selection->InsertBreak(COleVariant((long)wdColumnBreak));
selection
->InsertBreak(COleVariant((long)wdSectionBreakContinuous));
selection
->InsertBreak(COleVariant((long)wdPageBreak));

【11】設(shè)置欄目個(gè)數(shù)和欄目的寬度
這里一定要注意add函數(shù)的邏輯
1SectionsPtr word_sections = doc->GetSections();
2long num = word_sections->GetCount();
3SectionPtr word_section = word_sections->Item(num-1);
4PageSetupPtr page_setup = word_section->GetPageSetup();
5TextColumnsPtr text_cols = page_setup>GetTextColumns();
6text_cols->PutEvenlySpaced(0);
7text_cols->Add(COleVariant(col_width), COleVariant((long)0), COleVariant((long)false));
【12】插入表格
 1TablesPtr tables = oSel->GetTables();    
 2TablePtr table = tables->Add(oSel->GetRange(), 25);
 3    
 4BordersPtr bords = table->GetBorders();
 5bords->PutOutsideLineStyle(wdLineStyleSingle);
 6bords->PutInsideLineStyle(wdLineStyleSingle);
 7for (int i = 1; i<=2; i++)
 8{
 9    for (int j = 1; j<=5; j++)
10    {
11        table->Cell(i,j)->GetRange()->PutText("20");
12    }

13}

14
15CellPtr cell = table->Cell(1,1);
16cell->Merge(table->Cell(1,2));
【13】保存文檔并退出
1COleVariant vTrue((short)TRUE),vFalse((short)FALSE),vOpt((long)DISP_E_PARAMNOTFOUND, VT_ERROR);
2_DocumentPtr active_doc; 
3active_doc = word_app->GetActiveDocument();
4active_doc->SaveAs(COleVariant("D:\\doc1.doc"), 
5                   COleVariant((short)0),
6                   vFalse, COleVariant(""), vTrue, COleVariant(""),
7                   vFalse, vFalse, vFalse, vFalse, vFalse);
8word_app->Quit(vOpt, vOpt, vOpt);
在word優(yōu)秀的構(gòu)架中還有許許多多的接口,上面只是舉例實(shí)現(xiàn)一個(gè)普通的文檔,希望對大家有用。

posted on 2010-08-31 19:35 codeArt 閱讀(9100) 評論(4)  編輯 收藏 引用 所屬分類: COM

評論

# re: c++操作word接口 2010-10-26 17:51 tch

so good ,3q
  回復(fù)  更多評論   

# re: c++操作word接口 2012-02-29 22:25 徐世富

你用的是word哪個(gè)版本?生成app后,如果沒有裝.net還需要哪些dll,如果本身開著一個(gè)word,保存的時(shí)候會(huì)不會(huì)出現(xiàn)無法保存的問題,出現(xiàn)rfc服務(wù)器錯(cuò)誤
希望能發(fā)我郵箱543483382@qq.com,謝謝
  回復(fù)  更多評論   

# re: c++操作word接口[未登錄] 2012-08-07 17:35 劉偉

太好了。多謝博主  回復(fù)  更多評論   

# re: c++操作word接口 2014-04-21 17:08 仔仔

vs2010怎么使用能不能提供一下啊!我的郵箱是min0073@163.com  回復(fù)  更多評論   

<2012年8月>
2930311234
567891011
12131415161718
19202122232425
2627282930311
2345678

導(dǎo)航

統(tǒng)計(jì)

常用鏈接

留言簿(1)

隨筆分類

隨筆檔案

文章檔案

編程與開源

搜索

最新評論

閱讀排行榜

評論排行榜

青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            亚洲激情不卡| 亚洲欧美区自拍先锋| 亚洲黄色高清| 欧美高清视频一二三区| 久久久久久久综合狠狠综合| 国产人久久人人人人爽| 欧美亚洲日本一区| 毛片基地黄久久久久久天堂| 国产亚洲一区在线| 欧美xxxx在线观看| 欧美屁股在线| 久久亚洲精选| 欧美日韩一区二区在线| 亚洲综合色视频| 久久久久久电影| 亚洲欧美另类综合偷拍| 久久夜色精品国产亚洲aⅴ| 亚洲福利免费| 亚洲午夜精品国产| 亚洲人成网站999久久久综合| 亚洲精品日本| 在线精品高清中文字幕| 亚洲一区在线看| 中国女人久久久| 欧美不卡视频一区发布| 久久久久久久欧美精品| 国产精品久久网| 在线综合视频| 亚洲婷婷综合色高清在线| 欧美jizzhd精品欧美巨大免费| 久久九九国产精品怡红院| 国产精品视频观看| 午夜久久久久久久久久一区二区| 亚洲专区一区| 国产一区二区三区久久| 久久精品国产99| 久久一区二区三区av| 亚洲国产精品嫩草影院| 欧美激情精品久久久六区热门| 欧美激情区在线播放| 在线一区亚洲| 国产精品久久久久久久久借妻| 亚洲欧洲精品一区二区三区| 亚洲欧美一区二区视频| 久久久五月婷婷| 亚洲国产mv| 国产精品av一区二区| 亚洲欧美另类久久久精品2019| 午夜国产不卡在线观看视频| 国产一区二区av| 欧美久久久久久久| 欧美一区二区免费| 亚洲区免费影片| 久久久91精品国产一区二区精品| 国产欧亚日韩视频| 欧美人与性禽动交情品 | 久久人人97超碰精品888| 欧美aaaaaaaa牛牛影院| 午夜精品久久久久久久99水蜜桃| 在线免费不卡视频| 国产欧美一区二区精品忘忧草| 久久噜噜噜精品国产亚洲综合| av成人天堂| 亚洲国产精品一区二区尤物区 | 久久久精品999| 宅男精品视频| 亚洲一区二区伦理| 亚洲人午夜精品| 久久久亚洲国产美女国产盗摄| 亚洲午夜一区二区| aa级大片欧美三级| 亚洲影院色无极综合| 亚洲卡通欧美制服中文| 日韩亚洲欧美一区| 亚洲精品国产品国语在线app| 在线观看的日韩av| 亚洲激情在线播放| 99ri日韩精品视频| 欧美成人精品三级在线观看| 午夜精品影院在线观看| 欧美一区1区三区3区公司| 亚洲九九精品| 在线观看视频一区| 国产精品久久久久久久9999| 欧美午夜免费影院| 国产麻豆精品视频| 一本高清dvd不卡在线观看| 在线视频一区观看| 欧美一二三区在线观看| 久久久综合视频| 欧美午夜精品理论片a级按摩| 国产精品腿扒开做爽爽爽挤奶网站 | 亚洲国产毛片完整版| 亚洲国产另类 国产精品国产免费| 日韩一级成人av| 欧美有码视频| 欧美日韩国产成人精品| 国产综合久久| 亚洲婷婷在线| 日韩视频在线一区二区三区| 小处雏高清一区二区三区 | 欧美大片专区| 亚洲卡通欧美制服中文| 久久伊人一区二区| 欧美激情视频在线免费观看 欧美视频免费一| 在线一区欧美| 欧美在线免费观看视频| 欧美a级在线| 欧美一区高清| 国产精品手机视频| 99亚洲一区二区| 亚洲高清视频一区二区| 91久久精品日日躁夜夜躁国产| 久久精品国产综合| 欧美激情一区在线| 国产一区二区三区四区hd| 一区二区国产日产| 亚洲欧洲另类国产综合| 欧美一级久久久| 亚洲婷婷在线| 国产女人18毛片水18精品| 午夜国产精品影院在线观看| 亚洲国产视频一区二区| 欧美激情91| 亚洲欧美成人网| 性欧美8khd高清极品| 狠狠色香婷婷久久亚洲精品| 两个人的视频www国产精品| 久久午夜羞羞影院免费观看| 最新国产成人在线观看| 一本久道久久综合婷婷鲸鱼| 国产精品久久久久久一区二区三区 | 欧美高清视频一区二区| 免费久久99精品国产自在现线| 亚洲精品视频在线观看网站| 999亚洲国产精| 激情文学综合丁香| 亚洲毛片在线看| 亚洲高清不卡av| 午夜精品久久久久久久99水蜜桃 | 亚洲肉体裸体xxxx137| 亚洲视频精品在线| 性色av一区二区三区红粉影视| 激情小说另类小说亚洲欧美| 亚洲精品一区二区三区福利| 国产欧美日韩在线视频| 日韩一区二区精品葵司在线| 尤物在线观看一区| 午夜精品久久久久久久99樱桃 | 欧美国产精品一区| 国产欧美精品xxxx另类| 99视频国产精品免费观看| 欧美呦呦网站| 久久久之久亚州精品露出| 欧美日韩在线播放三区四区| 欧美成人免费一级人片100| 国产亚洲一本大道中文在线| 一区二区不卡在线视频 午夜欧美不卡'| 亚洲第一在线综合在线| 欧美中文字幕| 亚洲电影在线| 亚洲精品久久久久久久久久久久久 | 久久成人一区| 久久漫画官网| 黄色国产精品| 欧美激情第9页| 日韩亚洲欧美成人| 久久精彩视频| 麻豆精品视频在线观看| 91久久精品一区| 免费成人毛片| 欧美激情国产精品| 日韩一级不卡| 毛片精品免费在线观看| 亚洲精品1234| 国产精品高清在线| 久久嫩草精品久久久精品| 亚洲国产精品一区二区第四页av| 在线视频精品| 国产亚洲精品综合一区91| 久久精品中文字幕免费mv| 亚洲黄色大片| 久久嫩草精品久久久精品一| 99xxxx成人网| 在线观看日韩av先锋影音电影院| 欧美电影免费观看高清| 亚洲一区二区三区视频| 亚洲电影专区| 欧美成人高清| 久久国产日韩| 国产午夜精品视频| 99国产精品久久久| 美脚丝袜一区二区三区在线观看| 一本色道久久综合| 在线精品福利| 在线播放不卡| 午夜精品在线| 亚洲自拍三区| 一本到12不卡视频在线dvd| 亚洲国产精品一区在线观看不卡|