1

私はグリッドビューから動的なExcelファイルを生成しているC#プロジェクトに取り組んでいます。

ファイルを正常に生成すると、すべてのデータがGenaralタイプに変換されますが、すべてのExcelファイルデータをTextフォーマットに変換する必要があります。

どうやってやるの?レポートの目的でこのファイルをさらに使用する必要があるためText、タイプとして必要です

以下は私のExcelファイル生成C#コードです:

private void ExportGridView()
        {
            System.IO.StringWriter sw = new System.IO.StringWriter();
            System.Web.UI.HtmlTextWriter htw = new System.Web.UI.HtmlTextWriter(sw);

            // Render grid view control.
            gvFiles.RenderControl(htw);

            // Write the rendered content to a file.
            string renderedGridView = sw.ToString();
            File.WriteAllText(@"C:\test\ExportedFile.xls", renderedGridView);
        }

ここに画像の説明を入力してください

使用する必要があると思います。Microsoft.Office.Interop.Excel生成するタイプも指定できます。Text

また、HTMLを含むように生成して、そのようなものを優れたものにすることができるように検索しました。

誰かが私を助けることができますか?

4

2 に答える 2

4

を使用できますMicrosoft.Office.Interop.Excel。それへの参照を追加しusing、他のusingステートメントの横に次のステートメントを追加します。

using Microsoft.Office.Interop.Excel;

ExportGridViewメソッドを変更します。

private void ExportGridView()
{
    var path = @"C:\test\ExportedFile.xls";
    System.IO.StringWriter sw = new System.IO.StringWriter();
    System.Web.UI.HtmlTextWriter htw = new System.Web.UI.HtmlTextWriter(sw);

    // Render grid view control.
    gvFiles.RenderControl(htw);

    // Write the rendered content to a file.
    string renderedGridView = sw.ToString();
    File.WriteAllText(path, renderedGridView);
    UpdateFormat(path);
}

次のメソッドを追加します。

private void UpdateFormat(string path)
{
    var application = new Microsoft.Office.Interop.Excel.Application();
    var doc = application.Workbooks.Open(path);
    for (int i = 1; i <= doc.Worksheets.Count; i++)
    {
        Worksheet sheet = doc.Worksheets[i];
        for (int j = 1; j <= sheet.Columns.Count; j++)
        {
            Range column = sheet.Columns[j];
            column.NumberFormat = "@";
        }
    }
    doc.Save();
    doc.Close();
    application.Quit();
}
于 2013-03-01T14:06:12.797 に答える
0

推測ですが、gridview htmlを書いているからですか?CSVファイルを作成して.xlsで保存するだけで、Excelドキュメントになります

于 2013-03-01T13:28:26.353 に答える