質問: .NET Framework3.5を使用しています。 対象のプログラムはMicrosoft. Interop. Excel .dllを用いてHtml形式ファイルをXls形式ファイルに変換しているのですが、対象の顧客環境にExcelがインストールされているにも関わらず、制限がかけられているのか、dllからExcelを呼び出せない状態が続いています。 Excelがインストールされていないかのような動作をします。 現状、上記の調査が難航しているため、上記dllを用いて動作環境にインストールされているExcelの機能を使わずに、Htmlをxlsに変換する方法を調査しているのですが、サンプル等ご存じないでしょうか。 以下の様なことをプログラムを使わずにExcelを使用すれば可能なのですが、これをNPOI等のサードパーティ製のプログラムを使って、Excelがインストールされていなくてもxlsを出力できる状態にしたいのです。htmlが生成できるまでは対象顧客環境でも検証できています。 1)htmlの拡張子をxlsに変更 2)ダブルクリックして警告を無視してExcelで開く 3)シート名をSheet1に変更 4)シートの特定の列にドロップダウンリストで特定の値のリストを埋め込み 5)名前を付けて保存して、xlsとして保存 サンプルコード等あれば教えていただけないでしょうか。NPOIでなくても構いません。
回答: 有償ですが Aspose.Cells for .NET は、`html`から`.xls`への変換が可能です。どの程度複雑なhtmlかは分かりませんが、試してみると良いかと思います。 ``` using System.IO; using Aspose.Cells; using System; namespace Aspose.Cells.Examples.CSharp.Files.Handling { public class OpeningHTMLFile { public static void Run() { // ExStart:1 // The path to the documents directory. string dataDir = RunExamples.GetDataDir(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType); string filePath = dataDir + "Book1.html"; // Instantiate LoadOptions specified by the LoadFormat. HtmlLoadOptions loadOptions = new HtmlLoadOptions(LoadFormat.Html); // Create a Workbook object and opening the file from its path Workbook wb = new Workbook(filePath, loadOptions); // Save the MHT file wb.Save(filePath + "output.xlsx"); // ExEnd:1 } } } ``` .NET Framework 3.5 にも対応しているようです。