我写打开一个Excel文件,该代码:打开Excel 2010工作簿中的IIS7事业“从HRESULT异常:0x800A03EC”
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
}
}
,并在开放式这个错误发生:“从HRESULT异常:0x800A03EC”
笔记:
我用vs2012和我的项目的目标框架是4和的Microsoft.Office.Interop.Excel的版本是14.0.0.0
服务器信息:Windows Server 2008的32位,IIS7,Excel 2010中
我在桌面上创建文件夹 “C:\ WINDOWS \ system32 \设置\ systemprofile”,并设置权限为 “网络服务” 和“用户”
更改权限DCOM配置中的 “Microsoft Excel应用程序”,然后选择 “交互式用户”
设置权限为 “网络服务” 和 “用户” 为 “C:\ WINDOWS \ TEMP”
我很困惑。请帮帮我!
我需要XLS工作,XLSX,甚至CSV。在我的应用程序用户上传他们的Excel文件(xls,xlsx和csv),我应该读取数据。除了Interop,我还有什么解决方案吗? – 2013-05-10 18:30:36
@OmidRH是的,有几个解决方案 - 对于XLSX和CSV有免费的,对于XLS那里AFAIK只有商业... ...对于所有这些我已经在上面提供了我的答案中的链接... – Yahia 2013-05-10 18:48:34
我与interop(我有一个老板...所以这样的事情仍然会发生) 有什么想法? ''xlApp.Workbooks.Open(filePath);''抛出我担心的COMException – SparK 2013-11-21 12:49:43