大概代码如下:
_Application excelapp;
Workbooks books;
_Workbook book;
Worksheets sheets;
_Worksheet sheet;
Range range;
Range usedRange;
LPDISPATCH lpDisp;
VARIANT vResult;
if(!excelapp.CreateDispatch("Excel.Application"))
{
MessageBox("确认是否安装了Excel");
}
books.AttachDispatch(excelapp.GetWorkbooks());
//打开Excel
lpDisp = books.Open(strFilePath,
covOptional, covOptional, covOptional, covOptional, covOptional,
covOptional, covOptional, covOptional, covOptional, covOptional,
covOptional, covOptional, covOptional, covOptional
);
book.AttachDispatch(lpDisp);
sheets.AttachDispatch(book.GetWorksheets());
lpDisp = book.GetActiveSheet();
sheet.AttachDispatch(lpDisp);
//读取单元格的值
range.AttachDispatch(sheet.GetCells());//这句可以改成1个单元格
vResult = range.GetValue2();
获取VARIANT 类型之后构造safearray
Colesafearray sa(vResult)如果读取的range中列数为0或1时构造函数执行就会报错,请问怎么解决列数为1的问题;
_Application excelapp;
Workbooks books;
_Workbook book;
Worksheets sheets;
_Worksheet sheet;
Range range;
Range usedRange;
LPDISPATCH lpDisp;
VARIANT vResult;
if(!excelapp.CreateDispatch("Excel.Application"))
{
MessageBox("确认是否安装了Excel");
}
books.AttachDispatch(excelapp.GetWorkbooks());
//打开Excel
lpDisp = books.Open(strFilePath,
covOptional, covOptional, covOptional, covOptional, covOptional,
covOptional, covOptional, covOptional, covOptional, covOptional,
covOptional, covOptional, covOptional, covOptional
);
book.AttachDispatch(lpDisp);
sheets.AttachDispatch(book.GetWorksheets());
lpDisp = book.GetActiveSheet();
sheet.AttachDispatch(lpDisp);
//读取单元格的值
range.AttachDispatch(sheet.GetCells());//这句可以改成1个单元格
vResult = range.GetValue2();
获取VARIANT 类型之后构造safearray
Colesafearray sa(vResult)如果读取的range中列数为0或1时构造函数执行就会报错,请问怎么解决列数为1的问题;
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货