BCB中多个listview分SHEET导出到一个EXCEL中报错,该如何处理
BCB中多个listview分SHEET导出到一个EXCEL中报错
报错为这里sysvari.h文件中的这个函数
Variant Variant::OlePropertyGet(const String& name, P1 p1)
{
TAutoArgs<1> args;
args[1] = p1;
return OlePropertyGet(name, static_cast<TAutoArgsBase*>(&args));//这里报错
}
报的错是“raised exception class EOleSysError with message'发生意外。',Process stopped,Use Step or Run to continue."
我的listview导出到EXCEL的函数内容如下
i_cols1 = lv1->Columns->Count;
i_rows1 = lv1->Items->Count;
i_cols2 = lv2->Columns->Count;
i_rows2 = lv2->Items->Count;
i_cols3 = lv3->Columns->Count;
i_rows3 = lv3->Items->Count;
i_cols4 = lv4->Columns->Count;
i_rows4 = lv4->Items->Count;
//路径
TSaveDialog* sd = new TSaveDialog(NULL);
sd->DefaultExt = "xls";
sd->Filter = "*.xls";
__try
{
if(s_path_to_save.Trim().Length())
sd->FileName = s_path_to_save;
if(sd->Execute())
{
s_path_to_save = sd->FileName;
//验证文件是否已存在
if(FileExists(s_path_to_save) && MessageBox(NULL, "文件已存在,覆盖原文件吗?", "提示", MB_ICONQUESTION|MB_YESNO)!=ID_YES)
return;
}
else
return;
}
__finally
{
delete sd;
}
//扫描文档的列和行
Variant Ex, wb, st1, st2, st3, st4, range;
try
{
Ex = Variant::CreateObject("Excel.Application");
}
catch(...)
{
return;
}
Ex.OlePropertySet("Visible",true);
Ex.OlePropertySet("DisplayAlerts", false);
Ex.OlePropertyGet("Workbooks").OleFunction("Add"); // 工作表
//选择工作表1
Ex.OlePropertyGet("ActiveWorkbook").OlePropertyGet("Sheets", 1).OleProcedure("Select");
wb = Ex.OlePropertyGet("ActiveWorkBook");
st1 = wb.OlePropertyGet("ActiveSheet");
st1.OlePropertySet("Name","A");
报错为这里sysvari.h文件中的这个函数
Variant Variant::OlePropertyGet(const String& name, P1 p1)
{
TAutoArgs<1> args;
args[1] = p1;
return OlePropertyGet(name, static_cast<TAutoArgsBase*>(&args));//这里报错
}
报的错是“raised exception class EOleSysError with message'发生意外。',Process stopped,Use Step or Run to continue."
我的listview导出到EXCEL的函数内容如下
i_cols1 = lv1->Columns->Count;
i_rows1 = lv1->Items->Count;
i_cols2 = lv2->Columns->Count;
i_rows2 = lv2->Items->Count;
i_cols3 = lv3->Columns->Count;
i_rows3 = lv3->Items->Count;
i_cols4 = lv4->Columns->Count;
i_rows4 = lv4->Items->Count;
//路径
TSaveDialog* sd = new TSaveDialog(NULL);
sd->DefaultExt = "xls";
sd->Filter = "*.xls";
__try
{
if(s_path_to_save.Trim().Length())
sd->FileName = s_path_to_save;
if(sd->Execute())
{
s_path_to_save = sd->FileName;
//验证文件是否已存在
if(FileExists(s_path_to_save) && MessageBox(NULL, "文件已存在,覆盖原文件吗?", "提示", MB_ICONQUESTION|MB_YESNO)!=ID_YES)
return;
}
else
return;
}
__finally
{
delete sd;
}
//扫描文档的列和行
Variant Ex, wb, st1, st2, st3, st4, range;
try
{
Ex = Variant::CreateObject("Excel.Application");
}
catch(...)
{
return;
}
Ex.OlePropertySet("Visible",true);
Ex.OlePropertySet("DisplayAlerts", false);
Ex.OlePropertyGet("Workbooks").OleFunction("Add"); // 工作表
//选择工作表1
Ex.OlePropertyGet("ActiveWorkbook").OlePropertyGet("Sheets", 1).OleProcedure("Select");
wb = Ex.OlePropertyGet("ActiveWorkBook");
st1 = wb.OlePropertyGet("ActiveSheet");
st1.OlePropertySet("Name","A");