2022-11-24 17:42:57
vc++转word
方法1.查下教科书,翻到文件操作那,看下fopen,fprintf,fclose这三个。
方法2.用如下方式,可以不用改程序:
写好的程序比如为1.exe,通过如下命令行把写屏的内容导出到文件
c:\1.exe > 1.txt
方法3.如果矩阵不是很大,只是要把dos框中的数据复制出来,则点窗口左上角的图标,选择编辑->标记,就可以在dos框中复制内容,左键框选,右键复制框选的内容到剪贴板。
如何将ppt批量转化为pdf,通过代码实现。vb vc++ c# ...
powerpoint2007把ppt批量转为pdf
http://www.85flash.com/get/edu/office-edu/powerpoint/2008-1-7/15573687.htm
再继续努力吧,因为我对语言编程了解太少
vc 拷贝数据到word或excel
word没弄过,excel实际上就是个数据库,我这有写excel文件的代码,是ado形式的,希望能对你有帮助,不明白的咱们再探讨。
cdatabase database;
cstring sdriver = "microsoft excel driver (*.xls)"; // excel安装驱动
cstring strexcelfile,strpath,strnewexcelfile;
cstring ssql;
cstring ss;
strexcelfile = "z:\\program files\\tunnels\\temp\\iomstats.xls";
ssql.format("driver={%s};dsn='';firstrowhasnames=1;readonly=false;create_db=\"%s\";dbq=%s",sdriver, strexcelfile, strexcelfile);
cfilefind myfile;
if(!myfile.findfile(strexcelfile))
{
// 创建数据库 (既excel表格文件)
if( !(database.openex(ssql,cdatabase::noodbcdialog)))
return;
ssql = "create table iomstats (times text,dwnumofdiskreads text)";
database.executesql(ssql);
// 关闭数据库
database.close();
}
_connectionptr m_pconnect; //ado对象,下同
_recordsetptr m_precordset;
cstring sql;
sql = "provider=microsoft.jet.oledb.4.0;data source=";
sql+=strexcelfile;
sql+=";extended properties=excel 8.0";
m_pconnect.createinstance(__uuidof(connection));
m_precordset.createinstance(__uuidof(recordset));
m_pconnect->open((lpcstr)sql,"","",admodeunknown);
m_precordset->open("select * from [iomstats]", m_pconnect.getinterfaceptr(),
adopendynamic, adlockoptimistic,adcmdtext);
。。。。。。//在此做ado添加数据的操作,excel的表和数据库中的表是一回事,所以,把你视图中的数据按照存入数据库的方式写进excel中,在excel中相应的格中就能显示你存入的数据。
m_precordset->update();
m_precordset->close();
m_pconnect->close();
关于vc如何操作word2003
下面是从csdn上摘抄过来的,主要是今天调试vc操作word2003的时候,网上下载的是操作word 2000,但是参数已经有一些不同了。下面的代码可以在2003中运行,记录在这里便于以后复习用。
感谢您使用微软产品。
对于您所提的问题,确实可以使用ole automation在vc++中对word object model进行操作。下面这篇知识库文章中给出了如何在vc_++中引入office typelib,并通过程序启动ms excel.参照这篇文章可以使您建立起程序的框架
q178749 howto: create automation project using mfc and a type library
http://support.microsoft.com/support/kb/articles/q178/7/49.asp
以下两篇知识库文章给出了具体的样例,如何操作word和excel. 您可以使用其中的方法来完成你自己的操作。具体的对象模型的操作,您需要参见对应产品的vba帮助文档。
q178784 howto: use automation to open and print a word document
http://support.microsoft.com/support/kb/articles/q178/7/84.asp
q179706 howto: use mfc to automate excel and create/format a new workboo
http://support.microsoft.com/support/kb/articles/q179/7/06.asp
这两篇是介绍一些基础的知识以及office 产品在automation 上的一些支持以及常见问题。您可以用作参考。
q238972 info: using visual c++ to automate office
http://support.microsoft.com/support/kb/articles/q238/9/72.asp
q196776 faq: office automation using visual c++
http://support.microsoft.com/support/kb/articles/q196/7/76.asp
此外,我在以下列出了q178784中的样例代码,并添加了一些中文注释。
steps to create the project
---------------------------
1. in microsoft word, create a new document, add some text to the document, and save it as test.doc. close the document and exit word.
2. follow steps 1 through 12 in the following microsoft knowledge base article to create a sample project that uses the idispatch interfaces and member functions defined in the msword8.olb type library:
q178749 howto: create an automation project using mfc and a type library
请先按照q178749的步骤建立一个框架程序,并引入word typelib.
3. at the top of the autoprojectdlg.cpp, add the following line:
#include "msword8.h" // msword9.h for word 2000, msword.h for word 2002
4. add the following code to cautoprojectdlg::onrun() in the autoprojectdlg.cpp
file.
当以上步骤完成后,你会看到项目中有很多新的类,那些类就对应着word的对象模型。
sample code
-----------
_application objword; //定义word应用程序对象(word.application)
// convenient values declared as colevariants.
colevariant covtrue((short)true),
covfalse((short)false),
covoptional((long)disp_e_paramnotfound, vt_error);
// get the idispatch pointer and attach it to the objword object.
if (!objword.createdispatch("word.application"))
{
afxmessagebox("couldn't get word object.");
return;
}
objword.setvisible(true); //this shows the application.
documents docs(objword.getdocuments());//定义word documents对象(word.documents)
_document testdoc; //定义word document对象(word.document)
testdoc.attachdispatch(docs.open( //可看成vb语句set testdoc = word.documents.open(…)
colevariant("c:\\test.doc",vt_bstr),
covfalse, // confirm conversion.
covfalse, // readonly.
covfalse, // addtorecentfiles.
covoptional, // passworddocument.
covoptional, // passwordtemplate.
covfalse, // revert.
covoptional, // writepassworddocument.
covoptional, // writepasswordtemplate.
covoptional) // format. // last argument for word 97
covoptional, // encoding // new for word 2000/2002
covtrue, // visible
covoptional, // openconflictdocument
covoptional, // openandrepair
(long)0, // documentdirection wddocumentdirection lefttoright
covoptional // noencodingdialog
) // close open parameters
); // close attachdispatch(?)
afxmessagebox("now printing 2 copies on the active printer");
testdoc.printout(covfalse, // background. //可看成vb语句testdoc.printout(…)
covoptional, // append.
covoptional, // range.
covoptional, // outputfilename.
covoptional, // from.
covoptional, // to.
covoptional, // item.
colevariant((long)2), // copies.
covoptional, // pages.
covoptional, // pagetype.
covoptional, // printtofile.
covoptional, // collate.
covoptional, // activeprintermacgx.
covoptional // manualduplexprint.
covoptional, // printzoomcolumn new with word 2002
covoptional, // printzoomrow ditto
covoptional, // printzoompaperwidth ditto
covoptional); // printzoompaperheight ditto
// if you wish to print preview the document rather than print it,
// you can use the printpreview member function instead of the
// printout member function:
// testdoc.printpreview.
objword.quit(covfalse, // savechanges.
covtrue, // originalformat.
covfalse // routedocument.
);
5. you may need to modify the code in cautoprojectdlg::onrun() to indicate the correct path for your document test.doc. the document is referenced in the following line:
testdoc.attachdispatch(docs.open(
colevariant("c:\\my docs\\test.doc",vt_bstr)...