最近遇到一个问题,如何处理一个表格
这个表格是word或是excel格式的文档
在每一个表格中,都存在一个字段,就是顺序的序号,如果从中间删掉一条记录(就是说,删掉表格中的一行),不知道大家有什么好的想法,还请赐教。如果能够提供源代码参考,愿意加倍给分。
这个表格是word或是excel格式的文档
在每一个表格中,都存在一个字段,就是顺序的序号,如果从中间删掉一条记录(就是说,删掉表格中的一行),不知道大家有什么好的想法,还请赐教。如果能够提供源代码参考,愿意加倍给分。
解决方案 »
- MFC 使用动态链接库出现的问题(附程序)
- MBD,折寿了,想骂人
- 使用VS 制作安装包的几个问题
- 在VC6.0中如何用函数获得子网掩码
- 关于连接.lib文件 的问题
- 我是个笨蛋,大家告诉我com,com+,dcom到底是怎么回事?怎么做,又什么用处?谢谢了
- CDHtmlDialog,调用js时get_Script函数出现内存访问冲突
- 请问哪里有候老师的‘深入浅出mfc’电子版下载
- MFC MP3播放器的问题
- 求高手解答,关于FTP中GetFileURL( )取得文件路径的问题
- 十分钟前发了的帖子怎么看不到阿,重发一次。。。急,,给百分!!
- 看看在这种情况下是不是只有使用goto语句才能实现?
把OFFICE提供的接口都导到程序里来利用自动化解决
自动化技术实际应用
1、 可选参数的赋值问题
var.vt=VT_ERROR;
var.scode=DISP_E_PARAMNOTFOUND;
2、 讲解WORD自动化对象模型及相应的内容
a) 给文档增加内容
_Application app;
app.CreateDispatch("Word.application");
app.SetVisible(true); Documents docs;
_Document doc;
docs=app.GetDocuments();
CComVariant var;
var.vt=VT_ERROR;
var.scode=DISP_E_PARAMNOTFOUND;
doc=docs.Add(&var,&var,&var,&var);
Paragraphs phs=doc.GetParagraphs();
Paragraph ph=phs.Item(1);
Range rng=ph.GetRange();
rng.SetText("Hello world!");
b) 增加一个页眉的内容
Sections scts=rng.GetSections();
Section sct=scts.Item(1);
HeadersFooters hdfts;
hdfts=sct.GetHeaders();
HeaderFooter hdft;
hdft=hdfts.Item(1);
rng=hdft.GetRange();
rng.SetText("Hello !");
3、 讲解Excel自动化对象模型及相关的内容
::CoInitialize(NULL);
_Application app;
if(!app.CreateDispatch("Excel.Application", NULL))
{
AfxMessageBox("不能启动Excel!");
return;
}
Workbooks Books = app.GetWorkbooks();
//注意:可选变量的赋值问题
CComVariant var;
var.vt=VT_ERROR;
var.scode=DISP_E_PARAMNOTFOUND;
//以下的var为Add方法的可选变量
_Workbook Book = Books.Add(var);
//_Workbook Book=Books.Open("d:\\1.xls",var,var,var,var,var,var,var,var,var,var,var,var);
/*
Worksheets Sheets = Book.GetWorksheets();
_Worksheet Sheet = Sheets.GetItem(COleVariant((short)1));
Range Cells,Cell;//注意单元格集合与单元格都是一个范围对象
Cells=Sheet.GetCells();//取单元格集合
Cells.SetItem(CComVariant(1),CComVariant(1),CComVariant("Hello"));//设置单元格的内容
//以下是取单元格的内容部分
CComVariant CellText;
//方法一:直接从Sheet对象中取值,不过此时注意使用的参数只能是"A1"这种类型
//Cell=Sheet.GetRange(CComVariant("A1"),CComVariant("A1"));
//CellText=Cell.GetText();
//方法二:从得到的单元格集合中取出想要的单元格,再取其值,此时的参数就可以用Index索引号了
Cell=Cells.GetItem(CComVariant(1),CComVariant(1)).pdispVal;
CellText=Cell.GetText();
*/
app.SetVisible(TRUE);
Sleep(2000);
app.Quit();
1、 讲解DMO对象的自动化
USES_CONVERSION;
_SQLServerPtr SqlSrv;
_DatabasePtr SqlDb;
CoInitialize(NULL);
try
{
SqlSrv.CreateInstance(__uuidof(SQLServer));
SqlSrv->Connect(_variant_t("MMSERVER"),_variant_t("sa"),_variant_t(""));
SqlDb.CreateInstance(_uuidof(Database));
SqlDb=SqlSrv->Databases->Item(_variant_t("MM"));
}
catch(_com_error &e)
{
AfxMessageBox(W2A(e.Description()));
exit(0);
return ;
}
QueryResultsPtr Res;
CString sqlstr;
sqlstr="select * from xt_mmcode";
Res=SqlDb->ExecuteWithResults(_bstr_t(sqlstr));
long rows,cols;
rows=Res->Rows;
cols=Res->Columns;
CString ColName,VarName;
ColName=(char*)Res->GetColumnName(1);
VarName=(char*)Res->GetColumnString(1,1);
VarName.TrimRight();
原作者姓名 相生昌介绍
用VC操作Excel读者评分 11 评分次数 3 正文
先用ClassWizard从Office目录中导入Excel9.olb,并添加相就的类到VC中
_Application *ExcelApp = new _Application;ExcelApp->CreateDispatch("excel.application");//设置为显示
ExcelApp->SetVisible(TRUE);
//得到WorkBooks
Workbooks ExcelBook=ExcelApp->GetWorkbooks();
Sheets ExcelSheet=ExcelBook.Add(vtOptional1);
_Workbook workBook;
_Worksheet workSheet;
Range range;
workBook.AttachDispatch(ExcelApp->GetApplication());
ExcelSheet=workBook.GetSheets();////////////////////////////////////////////
workSheet=ExcelSheet.GetItem(COleVariant((short)1));
workSheet.Activate();
Range myallrange=workSheet.GetRange(COleVariant("A1"),COleVariant("E1"));
//myallrange.BorderAround(COleVariant((short)1),(long)2,(long)1,vtOptional);
myallrange.SetHorizontalAlignment(COleVariant((short)3));
myallrange.Merge(COleVariant((short)1));
myallrange.SetValue(COleVariant("这里写标题"));nRowCount=m_grid.GetRows();
nColCount=m_stockgrid.GetCols();
Range myrange=workSheet.GetRange(COleVariant("A1"),COleVariant("A1"));
myrange.SetValue(COleVariant("单元格内容"));
myrange.BorderAround(COleVariant((short)1),(long)2,(long)1,vtOptional);
myrange.SetHorizontalAlignment(COleVariant((short)3));
myrange.SetVerticalAlignment(COleVariant((short)2));
myrange.SetColumnWidth(COleVariant((short)15));delete ExcelApp;