Как создать CSV, чтобы число отображалось в виде строки в электронной таблице?
Я пытаюсь создать приложение, которое извлекает некоторые данные из базы данных, а затем использует некоторые данные для создания CSV-файла для загрузки Excel. В codez:
foreach (xOFDocInfo cm in docs)
{
string s = bi.Agency
+ "," + cm.BatNbr.Trim()
+ "," + cm.RefNbr
+ "," + cm.DocType
+ "," + cm.OrigDocAmt.ToString()
+ "," + cm.CreateDate.ToShortDateString();
writer.WriteLine(s);
}
" cm.BatNbr "-это 6-символьное число с нулевым заполнением, такое как"001234". Я хочу, чтобы Excel форматировал этот столбец как текст, чтобы я не терял нули спереди. Я пробовал некоторые трюки, такие как префикс числа с одной кавычкой (апостроф), но все, что я получаю, это префикс Апострофа. Если я установлю ячейки, которые будут отформатированы как текст, затем удалите апострофы, я также потеряю нули спереди.
я случайно обнаружил, что если я префикс вещь со знаком процента, Excel преобразует значение в ячейке в процент, поэтому, возможно, есть какой-то префикс, который я могу использовать, чтобы заставить Excel принимать значение в ячейке как текст при загрузке?
5 ответов
вы можете форматировать данные как ="001234"
. Это заставит Excel отображать его как 001234.
foreach (xOFDocInfo cm in docs)
{
string s = bi.Agency
+ ",=\"" + cm.BatNbr.Trim()
+ "\"," + cm.RefNbr
+ "," + cm.DocType
+ "," + cm.OrigDocAmt.ToString()
+ "," + cm.CreateDate.ToShortDateString();
writer.WriteLine(s);
}
вы также можете попробовать использовать формат sylk формат вместо CSV. SYLK дает вам лучший контроль над форматированием.
попробуйте процитировать BatNbr
foreach (xOFDocInfo cm in docs)
{
string s = bi.Agency
+ ", \"" + cm.BatNbr.Trim() + "\""
+ "," + cm.RefNbr
+ "," + cm.DocType
+ "," + cm.OrigDocAmt.ToString()
+ "," + cm.CreateDate.ToShortDateString();
writer.WriteLine(s);
}
окружение каждого значения кавычками должно решить вашу проблему (EDIT: я вижу, что это не сработает сейчас, но я оставлю этот ответ здесь, так как остальная информация может быть полезна).
технически нет способа указать тип в CSV, и это относится как к создателям CSV, так и к читателям CSV. Некоторые программы пытаются вывести типы данных из CSV, но это не рекомендуется и никоим образом не поддерживается CSV.
вам разрешено окружать каждое значение в цитаты, на самом деле я бы рекомендовал его, даже если это необязательно.
также важно, если значение окружено кавычками, убедитесь, что между запятой и начальной кавычкой нет ведущих пробелов. Это испортит Microsoft Excel, и он отобразит ячейку как пустую.
вы можете решить эту проблему во время импорта CSV в Excel. При импорте и установке синтаксического анализа для CSV-файлов у вас есть возможность назначить формат номера. Я использую это все время для столбцов почтового индекса в маркетинговых списках, чтобы не потерять ведущие нули в Новой Англии.
кроме того, как отметил Ричард, вы можете добавить ключевое слово перед числами, а затем проанализировать столбец с помощью функции "текст в столбцы" в Excel.