首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

只用C++,不用MFC怎样把一个数组传给Exce显示?解决思路

2012-03-05 
只用C++,不用MFC怎样把一个数组传给Exce显示?只用C++,不用MFC怎样把一个数组传给Exce显示?[解决办法]分析e

只用C++,不用MFC怎样把一个数组传给Exce显示?
只用C++,不用MFC怎样把一个数组传给Exce显示?

[解决办法]
分析excel的格式。好像office2007已经给出了word和excel的xml格式定义。
[解决办法]
直接调用excel的COM接口
看看是啥类型的,你就用啥类型的传递
[解决办法]
直接调用COM接口,不过C++用起来可能麻烦点,所以也可以用vbs……
[解决办法]
只用C++,不用MFC怎样把一个数组传给Exce显示?

你就直接写成.txt的,然后把扩展名改成xls
你试试
在一个txt当中
aaaaa
bbbbb
ccccc
ddddd
eeeee
然后,改扩展名
[解决办法]
1.先起动Excel进程

 //初始化COM的动态连接库
switch (OleInitialize(NULL))
{
case S_OK:
if (!AfxOleInit())
{
return;
}
std::cout<<"OLEExcel(S_OK)"<<std::endl;
break;
case S_FALSE:
std::cout<<"OLEExcel(S_FALSE1)"<<std::endl;
break;
default:
CoUninitialize();
return;
} // end switch

//创建Excel服务器(启动Excel)
if (!m_excelApp.CreateDispatch(_T("Excel.Application"))) 
{
std::cout << "CreateDispatch Error!" << std::endl;
return;

2.加入工作薄
 //AddBook() 
m_excelBooks.AttachDispatch(m_excelApp.GetWorkbooks()); 
m_lpDispatch = m_excelBooks.Add(Optional);
m_excelBook.AttachDispatch(m_lpDispatch);
3.加入工作表

 //operation AddSheet(const CString& psName)
//获取工作表集
m_excelSheets.AttachDispatch(m_excelBook.GetWorksheets());

//添加工作表
m_excelSheet.AttachDispatch(m_excelSheets.Add(Optional,
Optional,Optional,Optional));

//设置为活动sheet
m_excelSheet.Activate();

SetSheetName(psName);

4.写值


void OLEExcel::SetCellValue(long lRow, long lCol, COleVariant oleValue) {
//#[ operation SetCellValue(long,long,COleVariant) 
//得到Worksheets 需要注意以后新增加sheet后的情况 
m_excelSheets.AttachDispatch(m_excelBook.GetWorksheets());

//得到当前活跃sheet
//如果有单元格正处于编辑状态中,此操作不能返回,会一直等待
m_lpDispatch = m_excelBook.GetActiveSheet();
m_excelSheet.AttachDispatch(m_lpDispatch); 

range.AttachDispatch(m_excelSheet.GetCells());
range.SetItem(COleVariant(lRow),COleVariant(lCol),oleValue);
//#]
}

热点排行