6

C#.Net でデータを Excel シートにエクスポートしています。「00123450098」のようなデータを持つ列があります。データは最初のゼロなしでエクスポートされます。データをそのまま表示したい。

これが私のエクスポートExcelコードです。

 string style = @"<style> .text { mso-number-format:\@; } </style> ";
    HttpContext.Current.Response.Clear();
    HttpContext.Current.Response.AddHeader(
        "content-disposition", string.Format("attachment; filename={0}", fileName));
    HttpContext.Current.Response.ContentType = "application/ms-excel";
    HtmlForm frm = new HtmlForm();
    ...................
    ...................
     table.RenderControl(htw);
            HttpContext.Current.Response.Write(style);
            //render the htmlwriter into the response
            HttpContext.Current.Response.Write(sw.ToString());
            HttpContext.Current.Response.End();
4

6 に答える 6

8

CSV / TSV にエクスポートする場合は、先頭に 0 または (特に) 16 桁以上のテキスト "数字" を含む各セルにこれを入力します。

="0012345"

..0012345 は、そのセルにエクスポートする番号です。

どこで見たのか思い出せたらいいのに。

于 2012-12-04T17:37:16.960 に答える
5

Excel ファイルでは、Numbers セルは常に先行ゼロを削除します。一重引用符の後に先行ゼロを付けて数値を設定できます。すなわち

00123450098 ~ '00123450098

ただし、そのセルの形式はテキストに変更されます。生成された Excel ファイルに数式があり、そのセル参照が数値として含まれている場合、期待どおりに機能しません。

于 2012-07-20T07:36:27.557 に答える
4

私もこの問題を抱えていました。私が思いついた解決策は、Excel の組み込みの char() 関数を使用して先頭のゼロをこっそり入れることでした。Excel では、char() は渡された ASCII 文字コードの値を返すため、char(048) は 0 を返します。Excel にエクスポートする前に、次のように変数を先頭に追加します...

varName = "=CHAR(048)&" + varName;
于 2015-07-20T19:14:11.180 に答える
0

エクスポート中に、挿入される値の前に "" のような空の文字列を追加するだけです:

string x = "000123";
myWorksheet.Cells[1,1] = "" + x;
于 2012-10-11T21:54:29.853 に答える