在IIS7中打开Excel 2010工作簿,原因“Exception from HRESULT: 0x800a03ec”
本文关键字:from Exception HRESULT 0x800a03ec 原因 IIS7 Excel 工作簿 2010 | 更新日期: 2023-09-27 18:12:58
我写了下面的代码来打开一个excel文件:
private readonly object _missing = Type.Missing;
private IEnumerable<CellModel> GetUsedCells(string fileName)
{
SetNewCurrentCulture();//set "en-US" culture
var application = new Application();
var workbooks = application.Workbooks;
Workbook workbook = null;
try
{
workbook = workbooks
.Open(fileName,
0, false, _missing, "", "",
true, XlPlatform.xlWindows, _missing, false, false,
_missing, false, false, XlCorruptLoad.xlNormalLoad
);
}
finally
{
//realocate memory
if(workbook != null)
{
ReleaseComObject(workbook);
workbook = null;
}
workbooks.Close();
ReleaseComObject(workbooks);
workbooks = null;
application.Quit();
ReleaseComObject(application);
application = null;
GC.GetTotalMemory(false);
GC.Collect();
GC.WaitForPendingFinalizers();
GC.Collect();
GC.GetTotalMemory(true);
ResetCurrentCulture();//reset old culture
}
}
并在打开方法中发生此错误:"Exception from HRESULT: 0x800A03EC"
指出:
我使用vs2012,我的项目的目标框架是4,Microsoft.Office.Interop.Excel的版本是14.0.0.0
服务器信息:Windows Server 2008 32位,IIS7, Excel 2010
我在"C:'Windows'System32'config'systemprofile"中创建桌面文件夹,并设置权限为"网络服务"answers"用户"
更改"Microsoft Excel Application"中的DCOM配置权限并选择"交互式用户"
为"C:'Windows'Temp"设置"Network Services"answers"Users"权限
我很困惑。救救我吧!
ms在服务器场景下不支持互操作
有许多选项可以读取/编辑/创建Excel文件,而无需在服务器上互操作/安装Excel:
MS提供免费的OpenXML SDK V 2.0 -参见http://msdn.microsoft.com/en-us/library/bb448854%28office.14%29.aspx(仅限XLSX)
可以读写所有MS Office文件(包括Excel)。
另一个免费选项见http://www.codeproject.com/KB/office/OpenXML.aspx(仅限XLSX)
如果你需要更多像处理旧的Excel版本(如XLS,而不仅仅是XLSX),渲染,创建pdf,公式等,那么有不同的免费和商业库,如ClosedXML(免费,仅XLSX), EPPlus(免费,仅XLSX), Aspose。单元格,SpreadsheetGear, LibXL和Flexcel等