Member 11143448 Ответов: 2

Форматирование ячейки в виде текста в формате CSV


я работаю с данными файла .txt с более чем 100 столбцами и строками, передаваемыми в файл формата .csv, и все работает нормально. но проблема в том , что я получаю некоторые экспоненциальные значения , например 48123E+1, потому что они больше по размеру, который я не хочу, поэтому есть ли способ отформатировать ячейку как текст, чтобы избежать этих значений и получить значения в виде простого числа 004812334242424. Ниже приведен мой код snipet, но безрезультатно . пожалуйста помочь.

заранее спасибо.

например,у меня есть column1,column2, column3,column4.... и т. д

и только column3,column5,column100 должны быть отформатированы только как текст ... это было бы немного здорово для меня .

Что я уже пробовал:

var result = new StringBuilder();
            StreamWriter objWriter = new StreamWriter(destPath, false);
            int cnt = 0;
            foreach (DataColumn dc in dt.Columns)
            {
                result.Append(dc.ColumnName);
                result.Append(cnt == dt.Columns.Count - 1 ? Environment.NewLine : ",");
                cnt = cnt + 1;
            }

            foreach (DataRow row in dt.Rows)
            {
                for (int i = 0; i < dt.Columns.Count; i++)
                {
                    result.AppendFormat("=TEXT(C1," + row[i] + "),");
                    result.Append(row[i].ToString().Replace("\n", ""));
                    result.Append(i == dt.Columns.Count - 1 ? "\n" : ",");
                    
                }
                //result.Append();
            }
            objWriter.WriteLine(result.ToString());
            objWriter.Close();

2 Ответов

Рейтинг:
1

OriginalGriff

CSV-это не "форматированный" файл: это буквально текстовый файл, содержащий данные, разделенные запятыми, со строками, разделенными строками:

1, Hello there, 3
2, Goodbye, 4
Это две строки, каждая из трех колонок.
Чтобы разрешить вставку запятых и новых строк в столбец, можно использовать двойные кавычки для окружения текста:
1, Hello there, 3
2, "Goodbye, 4"
3, "Hello
there", 5
Это три строки, 3 столбца, на строке 1, 2 на строке 2 и 3 на строке 3.
Вот и все для форматирования CSV - ни ячейки, ни ссылок, ни настройки "это строка".

Если вы хотите более сложное форматирование - черт возьми, если вы хотите любое форматирование - то CSV-это неправильный выбор формата файла: вам нужна БД, или JSON, или XML, или XLSX.


Maciej Los

5ed!

Member 11143448

Спасибо Гриффу за Ваш ответ.
однако я обнаружил , что использую различные методы для создания csv-файла , но мы не можем избежать научной нотации для большего числа при открытии csv-файла, следовательно, csv имеет природу для преобразования этих чисел в научные нотации, поэтому я просто создал одну программу для чтения одного и того же CSV-файла, что бы я ни создал, и чтения одних и тех же данных в правильном формате в Datatable.
Ваше здоровье !!

Рейтинг:
0

Maciej Los

Пожалуйста, проверьте мой прошлый ответ: Запись длинных чисел в csv[^].


Maciej Los

Я люблю даунвотеров, особенно тех, кто вздрагивает, чтобы написать комментарий о причине Даун-голосования.
Спасибо!