有没封装了操纵Excel的C++库?

天下无雪的马甲 2006-08-12 05:17:08
不想用ODBC,也不想用OLE操纵Excel,不知有没直接操纵Excel的库?
最好是跨平台的。
...全文
462 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
经过几天的摸索,终于找到了wxWidgets读取Excel数据的方法。
就是一直用wxAutomationObject对象的GetObject方法定位到单元格,然后用GetProperty方法取得"Value"。
代码如下:
if(OpenDlg1->ShowModal()!=wxID_OK)
return;
wxAutomationObject excelObj,workbook,sheet,cell;
if(!excelObj.CreateInstance("Excel.Application"))
wxMessageBox("错误","创建Excel对象失败!",wxOK);

excelObj.CallMethod("workbooks.open",OpenDlg1->GetPath());

if(!excelObj.GetObject(workbook,"ActiveWorkBook"))
wxMessageBox("错误","创建workbook对象失败!",wxOK);
wxVariant param1[1];
param1[0]=1L;
if(!workbook.GetObject(sheet,"Sheets",1,param1)) //打开第一个工作表
wxMessageBox("错误","创建sheet对象失败",wxOK);

wxVariant params[2];
params[0]=1L;
params[1]=3L;
if(!sheet.GetObject(cell,"cells",2,params)) //选择第一行第三列
wxMessageBox("创建Cell对象失败!","错误",wxOK);
wxVariant x1=cell.GetProperty("Value");
text1->SetLabel("第一行第3列的值为:"+x1.GetString());
excelObj.CallMethod("close");
结贴!
  • 打赏
  • 举报
回复
我现在是用wxDev-C++,有没办法用wxWidgets的OLE接口读取Excel数据库的?
我仿C++Builder做的不行啊。
代码如下:
if(OpenDlg1->ShowModal()!=wxID_OK)
return;
wxAutomationObject excelObj,workbook,sheet;
if(!excelObj.CreateInstance("Excel.Application"))
wxMessageBox("错误","创建Excel对象失败!",wxOK);
if(!excelObj.GetObject(workbook,"WorkBooks"))
wxMessageBox("创建workbook对象失败","错误",wxOK);
workbook.CallMethod("Open",OpenDlg1->GetPath());

if(!workbook.GetObject(sheet,"Sheets[1]"))
wxMessageBox("创建sheet对象失败","错误",wxOK);;
wxVariant x1=sheet.GetProperty("Value","A1");
wxMessageBox("A1内容",x1.GetString(),wxOK);
excelObj.CallMethod("Close");

到创建Sheet对象这一步就失败了。
qtext 2006-08-14
  • 打赏
  • 举报
回复
wxDev-c++没用过,
if(!workbook.GetObject(sheet,"Sheets[1]"))
这一句应该有问题,应先获取sheets集合,再用Item获取sheet
vc类似的语句为:

Worksheets wss = wb.GetWorksheets();

_Worksheet ws = wss.GetItem (COleVariant((short)1));
qtext 2006-08-12
  • 打赏
  • 举报
回复
ole实际上已是最好的方式,即使有这样的库,也绝对不会比Ole方式强大,大多数类似这样的库都只有读取或写入数据的功能,不会有ole这样对Excel进行任意控制的强大功能。
kimryo 2006-08-12
  • 打赏
  • 举报
回复
哪有什么找头?Excel内部格式是没有公开的~
  • 打赏
  • 举报
回复
所以才找有没封装好的类啊。
kimryo 2006-08-12
  • 打赏
  • 举报
回复
写Excel可以读的很简单~但是要解析Excel自己的基本上不可能~

24,854

社区成员

发帖
与我相关
我的任务
社区描述
C/C++ 工具平台和程序库
社区管理员
  • 工具平台和程序库社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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