我寫打開一個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