1

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();

ただし、これが生成するファイルを開こうとすると、次のエラーが発生します。

ここに画像の説明を入力

4

1 に答える 1

1

ファイル名を .xls に変更してみましたか? Microsoft.Office.Interop.Excel.XlFileFormat.xlXMLSpreadsheet は xlsx ではなく xls にエクスポートすると思います

全種類はこちらから

于 2012-10-31T14:57:23.093 に答える