您的位置:首页 > 其它

Office 2007升级2013,导出Excel类,提示保存错误()

2016-12-08 23:03 656 查看
错误提示:
类“Excel.Application”的 COM 对象中的方法“save”返回了错误代码 0x800A03EC
试了很多种方式,打补丁,等等。              
不用系统的保存方法,重写一个保存Excel的方法,完美解决。
                //2016/12/8 Hailiang.Ma --- <MOD START>
                //p_ExcelApp.save();
                for(i = 1; i <= p_ExcelBooks.count(); ++i)
                {
                    p_ExcelBook = p_ExcelBooks.item(i);
                    p_ExcelBook.comObject().save();
                }
                 p_ExcelBook.saveAs(filename);
                //2016/12/8 Hailiang.Ma --- <MOD END>
完善版:
Excel宏:
// 2018/1/18 Mhl ---CEC <ADD START>
#define.1997('1997') //version number -- 8.0
#define.2000('2000') //version number -- 9.0
#define.2002('2002') //version number -- 10.0
#define.2003('2003') //version number -- 11.0
#define.2007('2007') //version number -- 12.0
#define.2010('2010') //version number -- 14.0
#define.2013('2013') //version number -- 15.0
#define.2016('2016') //version number -- 16.0
// 2018/1/17 Mhl ---CEC <ADD END>
代码:// 2018/1/17 Mhl ---CEC <ADD>
/*
AX2009支持Office 2010及以前版本
office 2010之后的版本Ax saveAs()和save()需要重写
// saveAs修改示例
//先导入Excel宏
#Excel
excelVersion = CEC_Global::excelVersion();
//Office 2010及之前版本的写法
if(excelVersion == #2010)
{
WorkBook.saveAs(fileName);
}
//office 2013及以后写法
else if(excelVersion == #2013)
{
for(i = 1; i <= ExcelWorkBooks.count(); i++)
{
ExcelWorkBook = ExcelWorkBooks.item(i);
ExcelWorkBook.comObject().save();
}
ExcelWorkBook.saveAs(fileName);
}
// save()修改示例
//p_ExcelApp.save();
for(i = 1; i <= p_ExcelBooks.count(); ++i)
{
p_ExcelBook = p_ExcelBooks.item(i);
p_ExcelBook.comObject().save();
}
p_ExcelBook.saveAs(filename);
*/
public static str 4 excelVersion()
{
#Excel
Com comExcel;
str 4 excelVersion;
real excelVersionNumber;

comExcel = new Com(#Excel);
excelVersionNumber = comExcel.version();
switch(excelVersionNumber)
{
case 8.0:
excelVersion = #1997;
break;
case 9.0:
excelVersion = #2000;
break;
case 10.0:
excelVersion = #2002;
break;
case 11.0:
excelVersion = #2003;
break;
case 12.0:
excelVersion = #2007;
break;
case 14.0:
excelVersion = #2010;
break;
case 15.0:
excelVersion = #2013;
break;
case 16.0:
excelVersion = #2016;
break;
}
return excelVersion;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐