Linux安全网 - Linux操作系统_Linux 命令_Linux教程_Linux黑客

会员投稿 投稿指南 本期推荐:
搜索:
您的位置: Linux安全网 > Linux编程 > » 正文

基于B/S模式的网页报表打印方式的分析与实现(2)

来源: 未知 分享至:

......

Worksheets // 代表excel表的集合

Worksheet //代表单个表

......

Range //活动区域

Cells / cell 单元格

Rows /row 行

Columns / column 列

Tables / table 表

Bookmarks / bookmark 标签

saveas 另存为

printout 打印

剩下的就不多讲了,直接给代码吧。

关于word的:

CoInitialize(NULL); // 初始化com组件,必须的

_Application wordApp;

if (!wordApp.CreateDispatch(\"Word.Application\")) //将wordApp链接到word应用程序

{

CoUninitialize();

return FALSE;

}

... 

Documents docs = wordApp.GetDocuments(); // 获得word的文档集

_Document doc;

COleVariant vtOptional((long)DISP_E_PARAMNOTFOUND,VT_ERROR);

COleVariant vtTrue((short)TRUE), vtFalse((short)FALSE);

CString filename; //要打开的文件名字

if(Filename.Find(\".dot\",0) > 0) // 如果是后缀是.dot,表明为一个word模板

{

// add the template to the word 

COleVariant covFileName;

covFileName.vt = VT_BSTR;

covFileName.bstrVal = ReportFilename.AllocSysString();

doc = docs.Add(covFileName,vtOptional,vtOptional,vtOptional); // 调用add

} 

else

{

// 如果是一个.doc普通文档,新建一个新的文档,然后把这个文件添加进去

doc = docs.Add(vtOptional,vtOptional,vtOptional,vtOptional); 

// the selection will be released automatically.

Selection oSelection;

oSelection = wordApp.GetSelection();

//插入一个文件

oSelection.InsertFile(Filename.GetBuffer(ReportFilename.GetLength()),vtOptional,vtOptional,vtOptional,vtOptional);

Filename.ReleaseBuffer();

oSelection.DetachDispatch();

}

当然,你也可以直接用open来打开一个文件。有对应的open方法。

取得word的版本号。 2000对应9.0, 2002对应10.0, 2003对应11.0,2007对应12.0

CString sVersion = wordApp.GetVersion(); 

COleVariant tablebookmarkname(bookmarkName);

//取得word的标签

Bookmarks wordbookmarks = doc.GetBookmarks();

//根据标签名取得指定标签

Bookmark wordbookmark;

wordbookmark = wordbookmarks.Item(tablebookmarkname);

//取得区域

Range range ;

range = wordbookmark.GetRange();

// 取得区域相连的表

Tables ts = range.GetTables();

Table t = ts.Item(1);

Rows rows = t.GetRows();

Row row = rows.Item(1); // the index is starts 1, ,2...

Cells cells = row.GetCells();

int colcount = cells.GetCount();

Cell cell = t.Cell(2, k+1);

range = cell.GetRange();

CString inh = range.GetText();

row = rows.Add(vtOptional);

//设置文字

range.SetText(inhnew);

保存文件,注意版本不同,有可能导致接口不同。

COleVariant savefilename, fileformat;

if(sVersion == \"9.0\")

{

doc.SaveAs9(savefilename, vtOptional,vtOptional,vtOptional,vtOptional,vtOptional,vtOptional,

vtOptional,vtOptional,vtOptional,vtOptional);

}

else if(sVersion == \"10.0\")

{

doc.SaveAs(&vNeuerName,& vtOptional,vtOptional,vtOptional,vtOptional,vtOptional,vtOptional,

vtOptional,vtOptional,vtOptional,vtOptional,vtOptional, vtOptional,vtOptional,vtOptional,vtOptional);

} 

else if(sVersion == \"11.0\")

{

doc.SaveAs(&vNeuerName,& vtOptional,vtOptional,vtOptional,vtOptional,vtOptional,vtOptional,

vtOptional,vtOptional,vtOptional,vtOptional,vtOptional, vtOptional,vtOptional,vtOptional,vtOptional);

}

//打印文件

doc.PrintOut(vtOptional,vtOptional,vtOptional
            ,vtOptional,vtOptional,vtOptional
            ,vtOptional,vtOptional,vtOptional
            ,vtOptional,vtOptional,vtOptional
            ,vtOptional,vtOptional,vtOptional
            ,vtOptional,vtOptional,vtOptional);

退出:

wordApp.Quit(vtOptional,vtOptional,vtOptional);

也可以用shellexcute打开和打印一个word文件。

 

2011年9月10日 10:22:49


如果觉得本文好的话就分享给你的朋友把!\"\" \"\" \"\" \"\" \"\" \"\" \"\" \"\" \"\" \"\"

 


Tags:
分享至:
最新图文资讯
1 2 3 4 5 6
验证码:点击我更换图片 理智评论文明上网,拒绝恶意谩骂 用户名:
关于我们 - 联系我们 - 广告服务 - 友情链接 - 网站地图 - 版权声明 - 发展历史