VC中 怎么将EXCEL表数据导入到List Control控件列表中
VC中 如何将EXCEL表数据导入到List Control控件列表中
如题,请问有没有谁知道如何将EXCEL表数据导入到List Control控件列表中?我只实现了将控件列表数据导出到EXCEL,但是反过来导入实在是不会做了,有没有哪个大神能帮帮我?不胜感激。
麻烦不要去网上COPY点代码发过来,网上的我也看过,基本全是互相COPY。
小弟QQ419177837,有做过的麻烦发给我吧?谢谢了
------解决方案--------------------
都会写如excel了 怎么读反而不会了……
用libxl读取 http://blog.csdn.net/sunnyloves/article/details/9996669
然后写到list
------解决方案--------------------
在数据量不大的情况下,读取excel,可以一次性把数据全部读到内存中在向listcontrol中插入
读excel的时候有时候默认会做转化,比如把excel中的时间读取出来变成数字。
olesaRead里面就是整个excel的数据 剩下的你自己解析吧
如题,请问有没有谁知道如何将EXCEL表数据导入到List Control控件列表中?我只实现了将控件列表数据导出到EXCEL,但是反过来导入实在是不会做了,有没有哪个大神能帮帮我?不胜感激。
麻烦不要去网上COPY点代码发过来,网上的我也看过,基本全是互相COPY。
小弟QQ419177837,有做过的麻烦发给我吧?谢谢了
------解决方案--------------------
都会写如excel了 怎么读反而不会了……
用libxl读取 http://blog.csdn.net/sunnyloves/article/details/9996669
然后写到list
------解决方案--------------------
在数据量不大的情况下,读取excel,可以一次性把数据全部读到内存中在向listcontrol中插入
读excel的时候有时候默认会做转化,比如把excel中的时间读取出来变成数字。
//创建Excel服务
if(!ExcelApp.CreateDispatch(_T("Excel.Application"),NULL))
{
MessageBox(_T("启动Excel服务失败"),_T("Excel"),
MB_OK
------解决方案--------------------
MB_ICONERROR);
return;
}
//获得Workbooks
books.AttachDispatch(ExcelApp.GetWorkbooks());
//打开一个工作薄
lpDisp=books.Open(m_ExcelPath,vtOptional,vtOptional,vtOptional,
vtOptional,vtOptional,vtOptional,vtOptional,
vtOptional,vtOptional,vtOptional,vtOptional,
vtOptional,vtOptional,vtOptional);
if (lpDisp==NULL)
{
MessageBox(_T("打开Excel文件失败!"),_T("Excel"),
MB_OK
------解决方案--------------------
MB_ICONERROR);
books.ReleaseDispatch();
ExcelApp.Quit();
ExcelApp.ReleaseDispatch();
return;
}
//得到_Workbook
book.AttachDispatch(lpDisp);
//得到工作簿中的Sheet的容器
sheets.AttachDispatch(book.GetSheets());
//默认开打第一个sheet页
sheet.AttachDispatch(sheets.GetItem(COleVariant((long)1)));
//获取Excel表格的行数
long iRowNum=GetRowCount(&sheet);
//获取Excel表格的列数
long iColumnNum=GetColumnCount(&sheet);
//获取到右下角的单元格坐标
CString strCells=GetUsedCellPosition(iRowNum,iColumnNum);
//设置excel格式为文本格式
SetRowToTextFormat(&sheet,iRowNum,iColumnNum);
//获取整个单元格范围
range=sheet.GetRange(COleVariant("A1"),COleVariant(strCells));
VARIANT varRead;
VariantInit(&varRead);
//保存整个有效单元格的数据
varRead=range.GetValue2();
if (varRead.vt==VT_EMPTY)
{
books.ReleaseDispatch();
ExcelApp.Quit();
ExcelApp.ReleaseDispatch();
return;
}
COleSafeArray olesaRead(varRead);
//释放内存
VariantClear(&varRead);
olesaRead里面就是整个excel的数据 剩下的你自己解析吧