删除或增加word或excel表格中某一条记录

Richie2000 2004-01-09 10:40:39
最近遇到一个问题,如何处理一个表格
这个表格是word或是excel格式的文档
在每一个表格中,都存在一个字段,就是顺序的序号,如果从中间删掉一条记录(就是说,删掉表格中的一行),不知道大家有什么好的想法,还请赐教。如果能够提供源代码参考,愿意加倍给分。
...全文
353 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
kilnut 2004-06-16
  • 打赏
  • 举报
回复
学习
nkwesley 2004-06-16
  • 打赏
  • 举报
回复
关键字 操作Excel
原作者姓名 相生昌

介绍
用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;

DotLSong 2004-01-09
  • 打赏
  • 举报
回复
呵呵,学习,虽然明白是怎么回事,但还真是从来没用过
曾经的猎狐 2004-01-09
  • 打赏
  • 举报
回复
用COM接口来解决吧
把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();

zhangcrony 2004-01-09
  • 打赏
  • 举报
回复
值得學習啊

16,551

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • Creator Browser
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

试试用AI创作助手写篇文章吧