私は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
}
}
Open メソッドでこのエラーが発生しました:「HRESULT からの例外: 0x800A03EC」
ノート:
私はvs2012を使用し、私のプロジェクトのターゲットフレームワークは4で、Microsoft.Office.Interop.Excelのバージョンは14.0.0.0です
サーバー情報: Windows Server 2008 32 ビット、IIS7、Excel 2010
「C:\Windows\System32\config\systemprofile」にデスクトップ フォルダーを作成し、「ネットワーク サービス」と「ユーザー」に権限を設定します。
「Microsoft Excel アプリケーション」の DCOM Config で権限を変更し、「対話型ユーザー」を選択します。
「C:\Windows\Temp」の「ネットワーク サービス」と「ユーザー」に権限を設定します。
私はとても混乱しています。お願い助けて!