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;
}
类“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;
}
相关文章推荐
- Lync2013 升级错误总结5 TMG发布Lync2013或者Office Web APP提示:目标服务器证书错误
- 写了一段VBA代码后, Excel每次保存时都弹出警告:”此文档中包含宏、Activex控件、XML扩展包信息“(office 2007)
- 解决office 2007、2010, Word2007、2010提示错误“此错误通常是由宏安全性设置造成”
- 如何在早期版本的 Office 中打开并保存 Word 2007、Excel 2007 和 PowerPoint 2007 文件
- 关于用excel导出gridview控件中的数据时,会提示什么服务器控件 ,要在server等等的错误
- Lync2013 升级错误总结8 Lync2013 日志总是提示进程 RtcHost(5724) 收到了一个无效的客户端证书
- office 2003导出excel 程序升级win2008下office 2010 cr10升级cr13
- 如何安装 Microsoft Office 兼容包,以便能够使用早期版本的 Excel、PowerPoint 和 Word 来打开和保存来自 2007 Office 程序的文件
- jxl导出excel提示”文件错误 可能某些数字格式已丢失“解决办法
- 用C#.net编写导入导出EXCEL文件的代码。编绎运行后,错误提示: 找不到可安装的ISAM
- java使用poi或者jxl实现excel导出之后如何弹出保存提示框
- win 7 安装OFFICE 2007 提示2203错误
- office 2013 保存后 提示停止工作
- ASP.NET导出excel文件提示“未指定的错误”!
- BCGControllBar下设计Office 2007风格时,DEBUG+STATIC状态下的错误提示解决办法.
- 教你设置office word/excel 2007/2010默认保存格式是2003兼容格式
- EXCEL2013保存时提示Be careful!Parts of your document may include personal information...
- EXCEL2013保存时提示Be careful!Parts of your document may include personal information...
- NPOI 导出Excel 2007, 2013问题
- Lync2013 升级错误总结7 Lync2013 外部共享PPT提示:网络连接已丢失或服务器正忙,