3 つのワークシートを含む Excel スプレッドシートをプログラムで作成する必要があります。
Sheet1の場合、Gridviewをエクスポートしようとしています...すべてのフォーマットを使用して.Http.Responseを使用せずにエクスポートしようとしています.以降のすべてのコード実行を停止します。
Gridview を Excel ワークブックに直接書き込むことができれば、コーディング ルーチンを続行してファイルを再度開き、プログラムでシート 2 と 3 を追加できるはずです。
このコードは機能します...ちょっと...ほとんど!
private void ExportGridView(GridView myGrid)
{
System.IO.StringWriter sw = new System.IO.StringWriter();
System.Web.UI.HtmlTextWriter htw = new System.Web.UI.HtmlTextWriter(sw);
// Render grid view control.
myGrid.RenderControl(htw);
// Write the rendered content to a file.
string renderedGridView = sw.ToString();
File.WriteAllText("C:\\TimeSheets\\ExportedFile.xlsx", renderedGridView);
}
コーディングをやめて TimeSheets ディレクトリに移動すると、"ExportedFile.xlsx" が "Microsoft Office Excel 2007 Workbook" として表示され、Excel プログラムで適切にフォーマットされた Gridview を開いて表示するのに問題はありません。
しかし、C# でコーディングを続け、コード ビハインドで同じファイルを開こうとすると、「ファイルに破損したデータが含まれています」というエラーが表示されます。
Excel を使用して「ExportedFile.xlsx」ファイルを表示しているときに「名前を付けて保存」を実行すると、ファイル名が引用符で囲まれ、ファイルの種類がデフォルトで [Web ページ htm/html として保存] になっていることがわかります。ファイル名から引用符を削除し、ファイルの種類を「.xlsx」に設定してこれらの値をリセットすると、その結果のファイルを分離コードで読み取ることができます。
誰でも私に解決策を提供できますか?
ジョー。