Web ブラウザー コントロールのコンテンツを取得し、それを Excel で開く形式で保存する方法があるかどうかを知りたいです。現在、ユーザーからデータを取得してテーブルに変換し、WPF Web ブラウザー コントロールの html に表示するアプリケーションがあります。次のように、このコントロール コンテンツを PDF ドキュメントとして正常にエクスポートできます。
string fileName = System.IO.Path.GetTempPath() + Guid.NewGuid().ToString() + ".html";
File.WriteAllText(fileName, generateHtml());
//Creates a new instance of the Microsoft office interop for using MS Word
Microsoft.Office.Interop.Word.Application app = new Microsoft.Office.Interop.Word.Application();
app.Visible = false;
Microsoft.Office.Interop.Word.Document doc = app.Documents.Open(fileName);
doc.SaveAs("C:\\Temp\\testExport.pdf", 17);
app.Quit();
これはPDFファイルのエクスポートには問題なく機能します。私が抱えている問題は、これをExcelファイルで機能させることができないということです。これまでのところ、私は次のようにしようとしています:
string filePath = System.IO.Path.GetTempPath() + Guid.NewGuid().ToString() + ".html";
File.WriteAllText(filePath, generateHtml());
//Creates a new instance of Microsoft office interop for using MS Excel
Microsoft.Office.Interop.Excel.Application excelApp = new Microsoft.Office.Interop.Excel.Application();
//Create a new instance of a workbook
Microsoft.Office.Interop.Excel.Workbook excelWorkBook = excelApp.Workbooks.Add();
//Don't Show MS Excel
excelApp.Visible = false;
//Open a file at location
Microsoft.Office.Interop.Excel.Workbook excelWorkBook2 = excelApp.Workbooks.Open(filePath);
//Convert that file to an XLSX document
excelWorkBook2.SaveAs("C:\\Temp\\testExport.xlsx", Microsoft.Office.Interop.Excel.XlFileFormat.xlXMLSpreadsheet, Missing.Value, Missing.Value, false, false, Microsoft.Office.Interop.Excel.XlSaveAsAccessMode.xlNoChange, Microsoft.Office.Interop.Excel.XlSaveConflictResolution.xlUserResolution, true, Missing.Value, Missing.Value, Missing.Value);
//Close excel
excelApp.Quit();
ただし、これが生成するファイルを開こうとすると、次のエラーが発生します。