Как сохранить ведущие нули в файле CSV с двойными кавычками, разделенными запятыми, при просмотре в Excel 2010?

7284
zundarz

Да, я исследовал этот вопрос здесь, здесь и в stackoverflow, и я знаю, что это кажется дублирующим вопросом. Поэтому я делаю свой вопрос более конкретным: «Как сохранить ведущие нули в файле CSV с двойными кавычками, разделенными запятыми, при просмотре в Excel 2010?»

Требования моего клиента:

  1. Должен быть файл CSV
  2. Должен быть в состоянии дважды щелкнуть файл для просмотра в Excel
  3. Должны сохранять ведущие нули, особенно в поле почтового индекса.
  4. Поля в двойных кавычках должны быть запятыми в поле имени, например Donald Duck, Jr.

Мои попытки.

  1. Если я не заключаю двойные кавычки в поля, тогда "= 06953" прекрасно работает, однако Дональд Дак-младший разбивается на два отдельных столбца, что недопустимо.
  2. Если при двойных кавычках в моих полях я пытаюсь "=" "06953" ", как это и предполагает, то я получаю =" 06953 " в своей ячейке.
1
Почему первый ответ, который вы связали, не решил проблему? uSlackr 11 лет назад 0
Это происходит, если я не цитирую свои поля дважды. zundarz 11 лет назад 0
Повторная ссылка ... для этого требуется, чтобы пользователь имел имя файла, отличное от csv, а затем импортировал его в excel. Пользователь не хочет этого делать. zundarz 11 лет назад 0
= 06953 не имеет начального нуля, начинается с "="? Так что ваши вопросы немного сложны для подражания. Ƭᴇcʜιᴇ007 11 лет назад 0
Ваша [последняя ссылка] (http://www.creativyst.com/Doc/Articles/CSV/CSV01.htm#CSVAndExcel) имеет решение, вы только что пропустили одну цитату: `" = "" 06593 "" "` (примечание третья заключительная кавычка) преобразуется в значение поля `=" 06593 "` при импорте файла CSV в кавычках, что должно привести к тому, что Excel сохранит начальные нули. kopischke 11 лет назад 1
@ techie007: Excel удаляет начальные нули, когда вы используете его для чтения CSV-файла. Один из способов уведомить Excel о сохранении лидирующих нулей состоит в том, чтобы экранировать поле с начальными нулями с помощью = =. Excel будет читать = "06953" в ячейку, которая читает 06953. Однако это решение не работает, если вы используете двойные кавычки для разграничить ваши поля. zundarz 11 лет назад 0

2 ответа на вопрос

1
kworr

You miss the point about double quoting, to include double quote in field you should double it:

"=""634576345" => ="634576345 

To keep leading zeroes you should present your numbers to Excel like strings so they should not be converted to numbers at all. I have no Excel installed anywhere right now but here are possible solutions that come in mind:

  • using comma instead of a point (or point instead of the comma if your locale uses comma as a decimal separator);
  • adding leading space symbol;
  • adding leading quote (') symbol (AFAIK Excel does this to distinguish ordinary strings from some-other-type-look-alike).
Я не хочу сохранять двойные кавычки, скорее я хочу сохранить свои ведущие нули, которые удаляет Excel. zundarz 11 лет назад 0
использование запятой вместо точки не является общим решением. Например, во французском языке разделитель десятичной точки - это `,` вместо `.`. Jack 9 лет назад 0
1
zundarz

Вот решение, которое работает в Excel 2010

  1. Двойные кавычки разделяют поля, у которых нет начальных нулей. Это позволит вам использовать двойные кавычки в полях, которые содержат запятые.
  2. Для полей с начальными нулями используйте = "для начального разделителя полей и" для конечного разделителя полей. Это сохранит ведущие нули для этого поля.

Нет необходимости удваивать поля кавычек с ведущими нулями, когда вы используете двойные кавычки в качестве разделителя полей.