Microsoft.Office.Interop.Excel dllを使用してプログラムでExcelを開いてExcelを作成する方法は?
-
22-07-2019 - |
質問
Microsoft.Office.Interop.Excel dllを使用してデータをExcelシートに書き込みたい。コードがあります:
if (System.IO.File.Exists(strFileName))
{
System.IO.File.SetAttributes(strFileName, FileAttributes.Normal);
System.IO.File.Delete(strFileName);
}
// Open an instance of excel. Create a new workbook.
// A workbook by default has three sheets, so if you just want
//a single one, delete sheet 2 and 3
Excel.Application xlApp = new Microsoft.Office.Interop.Excel.Application();
Excel._Workbook xlWB = (Excel._Workbook)xlApp.Workbooks.Add(Missing.Value);
Excel._Worksheet xlSheet = (Excel._Worksheet)xlWB.Sheets[1];
((Excel._Worksheet)xlWB.Sheets[2]).Delete();
((Excel._Worksheet)xlWB.Sheets[2]).Delete();
xlSheet.Name = strSheetName;
// Write a value into A1
xlSheet.Cells[2, 1] = "Tags";
xlSheet.Cells[2, 2] = "Leak Test";
xlSheet.Cells[2, 3] = "FIR";
xlSheet.Cells[2, 4] = "SOP";
xlWB.SaveAs(strFileName, Missing.Value, Missing.Value, Missing.Value,
Missing.Value,Missing.Value,
Microsoft.Office.Interop.Excel.XlSaveAsAccessMode.xlNoChange, Missing.Value,
Missing.Value, Missing.Value, Missing.Value, Missing.Value);
xlApp.Quit();
// Release the COM object, set the Excel variables to Null, and tell the
//Garbage Collector to do its thing
System.Runtime.InteropServices.Marshal.ReleaseComObject(xlSheet);
System.Runtime.InteropServices.Marshal.ReleaseComObject(xlWB);
System.Runtime.InteropServices.Marshal.ReleaseComObject(xlApp);
xlSheet = null;
xlWB = null;
xlApp = null;
今、既存のExcelファイルをパス&から開きたい次に、提供された&という名前のExcelシートにデータを入力します。その後、プログラムから特定のパスに保存されます。
既存のExcelファイルを開くことができるものがある場合は、ソースを返信してください&追加することができます&別の名前で保存します。
よろしく、 ギリッシュ
解決
情報についてはこちらを参照してください。
他のヒント
ExcelPackageはもう保守されていません。いくつかのバグがあるようです。そこでコメントを読んで、 http://epplus.codeplex.com/
を見つけました。ExcelPackageに基づいて構築され、ライセンス(GPL)を継承するため、要件に適合しない場合があります。
2007バージョンのExcelを使用している場合、代わりに ExcelPackage を使用することをお勧めします。 OpenXML標準の実装であり、COM相互運用機能よりもはるかに高速で使いやすく、Webサーバーなど、Excel(Office)がインストールされていないマシンでも実行できます。
強くお勧めします-ただし、Excel 2007以降に限定されます。
所属していません StackOverflow