列の値は数式/指数に変換されます

デビッドD。:

CSVファイルを書き込むときに、データの特定の列で少し問題があります。ほとんどの場合、値は11文字/桁よりも長くなります。したがって7.47313E+11、CSV のように生成され、実際にはと読み取られるはず747313016112です。私は最初、この問題を解決するための参照としてこの回答された質問を使用していましたが、機能していません。

注意すべき1つの点は、DBの列(というタイトルBarcode)がvarcharであることです。ただし、この列に保存されるのは数値のみです。したがって、CSV生成プロセス中(または生成後)のどこかで、Excelはそれを文字列ではなく数値として認識していると思います。

これまでの私の作業コードは次のとおりです。

public static void GenerateChartsCSVFile(IEnumerable<ChartsData> chartsData)
{
    string fullPath = "C:\\chart-data.csv";

    using (var writer = new StreamWriter(fullPath, true, Encoding.GetEncoding("iso-8859-1")))
    using (var csv = new CsvWriter(writer, CultureInfo.InvariantCulture))
    {
        csv.WriteRecords(chartsData);

        writer.Flush();
    }

    if (File.Exists(fullPath))
        Console.WriteLine("Charts CSV file " + csvFile + " successfully created!");
    else
        Console.WriteLine("Oops, something went wrong with generating the Charts CSV file.");
}

データ・モデル:

public class ChartsData
{
    public string CatalogueID { get; set; }
    public string Barcode { get; set; }
    public string Title { get; set; }
    public string ReleaseDate { get; set; }
    public int DiscNo { get; set; }
    public int TrackNo { get; set; }
    public string TrackTitle { get; set; }
    public string ISRC { get; set; }
    public string Duration { get; set; }
    public string LabelID { get; set; }
    public string Label { get; set; }
    public string TrackContributors { get; set; }
}

事前にどうもありがとうございました!

デビッド・スペクト:

1組の二重引用符を追加するだけです。CsvHelperは、文字列内の引用符を別の二重引用符のセットで自動的にエスケープします。文字列=""747313016112""=""""747313016112""""、CsvHelperが各二重引用符をエスケープするため、最終的には次のようになります。これが、"747313016112"Excel内で値が表示される理由です。

chartsData.Barcode = "=\"" + chartsData.Barcode + "\"";

CsvHelperはRFC 4180に従っています

  1. フィールドを囲むために二重引用符を使用する場合、フィールド内に表示される二重引用符は、その前に別の二重引用符を付けることでエスケープする必要があります。

例えば:

「aaa」、「b」、「bb」、「ccc」

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

数値が.toString()を介して指数表記に変換されるのはいつですか?

分類Dev

指定されたタイプ(数値)の変数の式がTypescriptで文字列に変換されるのはなぜですか?

分類Dev

指数が変数の場合、pow()から出力される特大の値が同じように強制変換されないのはなぜですか?

分類Dev

数式は、値の変換と選択に役立ちます

分類Dev

セルの値は、「000000」形式ではなく数値に変換されます

分類Dev

javascriptでExcelを読むと、長い数値が指数関数に変換されます

分類Dev

RのCopy_toにより、日付が数値列に変換されます

分類Dev

文字列の数値式を数値に変換する

分類Dev

Excelの数値列は論理として変換されます

分類Dev

文字列を数値に変換します(入力された変数に応じてFloatまたはint)

分類Dev

$ .ajax内の関数結果配列は文字列に変換されます

分類Dev

条件が満たされた場合、数式を値に変換します

分類Dev

列形式は数値に変換されますが、テキストとして表示されます

分類Dev

Javaは文字列を数値の配列に変換します

分類Dev

anglejs式で文字列を数値または日付に変換する方法

分類Dev

NSMangagedObjectContextは、DBパスの値を使用して文字列に変換されます

分類Dev

NSMangagedObjectContextは、DBパスの値を使用して文字列に変換されます

分類Dev

負の指数関数で呼び出された.toFixed()は、文字列ではなく数値を返します

分類Dev

データフレーム内の列変数または多重指数に基づく外れ値の削除

分類Dev

文字列の指数値を指数表記なしの10進表現に変換します

分類Dev

SQLは数値の文字列をintに変換します

分類Dev

変数(または式)を入力すると、値がstdoutに出力されるのはなぜですか?

分類Dev

Pythonで指数値を文字列形式に変換する方法は?

分類Dev

数値を9で構成される別の数値に変換します

分類Dev

10進数値を2進数、16進数、8進数に変換する単一の関数は2進数に変換されません

分類Dev

列全体で検索と置換を使用すると、Excelの数値が現在までに変更されます

分類Dev

一連の数値を一意のランダムに表示される文字列に変換します

分類Dev

Floatは大きな値のintに変換されます

分類Dev

特定の入力値はJSONに変換されます

Related 関連記事

  1. 1

    数値が.toString()を介して指数表記に変換されるのはいつですか?

  2. 2

    指定されたタイプ(数値)の変数の式がTypescriptで文字列に変換されるのはなぜですか?

  3. 3

    指数が変数の場合、pow()から出力される特大の値が同じように強制変換されないのはなぜですか?

  4. 4

    数式は、値の変換と選択に役立ちます

  5. 5

    セルの値は、「000000」形式ではなく数値に変換されます

  6. 6

    javascriptでExcelを読むと、長い数値が指数関数に変換されます

  7. 7

    RのCopy_toにより、日付が数値列に変換されます

  8. 8

    文字列の数値式を数値に変換する

  9. 9

    Excelの数値列は論理として変換されます

  10. 10

    文字列を数値に変換します(入力された変数に応じてFloatまたはint)

  11. 11

    $ .ajax内の関数結果配列は文字列に変換されます

  12. 12

    条件が満たされた場合、数式を値に変換します

  13. 13

    列形式は数値に変換されますが、テキストとして表示されます

  14. 14

    Javaは文字列を数値の配列に変換します

  15. 15

    anglejs式で文字列を数値または日付に変換する方法

  16. 16

    NSMangagedObjectContextは、DBパスの値を使用して文字列に変換されます

  17. 17

    NSMangagedObjectContextは、DBパスの値を使用して文字列に変換されます

  18. 18

    負の指数関数で呼び出された.toFixed()は、文字列ではなく数値を返します

  19. 19

    データフレーム内の列変数または多重指数に基づく外れ値の削除

  20. 20

    文字列の指数値を指数表記なしの10進表現に変換します

  21. 21

    SQLは数値の文字列をintに変換します

  22. 22

    変数(または式)を入力すると、値がstdoutに出力されるのはなぜですか?

  23. 23

    Pythonで指数値を文字列形式に変換する方法は?

  24. 24

    数値を9で構成される別の数値に変換します

  25. 25

    10進数値を2進数、16進数、8進数に変換する単一の関数は2進数に変換されません

  26. 26

    列全体で検索と置換を使用すると、Excelの数値が現在までに変更されます

  27. 27

    一連の数値を一意のランダムに表示される文字列に変換します

  28. 28

    Floatは大きな値のintに変換されます

  29. 29

    特定の入力値はJSONに変換されます

ホットタグ

アーカイブ