Excel CSV – формат ячейки

Я создаю отчет как файл CSV. Когда я пытаюсь открыть файл в Excel, он делает предположение о типе данных, основанном на содержимом ячейки, и переформатирует его соответствующим образом.

Например, если файл CSV содержит

...,005,... 

Тогда Excel показывает это как 5. Есть ли способ переопределить это и отобразить 005?

Я бы предпочел сделать что-то в самом файле, чтобы пользователь мог просто дважды щелкнуть файл CSV, чтобы открыть его.

Я использую Excel 2003.

Нет простого способа управления форматированием Excel при открытии CSV-файла. Однако ниже перечислены три подхода, которые могут помочь.

Мое предпочтение – это первый вариант.

Вариант 1 – изменение данных в файле

Вы можете изменить данные в CSV-файле следующим образом: …, = "005" , … Это будет отображаться в Excel как …, 005 , …

Excel сохранит данные как формулу, но копирование столбца и использование специальных значений вставки избавятся от формулы, но сохраните форматирование

Вариант 2 – форматирование данных

Если это просто проблема с форматом, и все ваши данные в этом столбце имеют длину в три цифры. Затем откройте данные в Excel и затем отформатируйте столбец, содержащий данные, в этом настраиваемом формате 000

Вариант 3 – изменить расширение файла на .dif (формат обмена данными)

Измените расширение файла и используйте мастер импорта файлов для управления форматами. Файлы с расширением .dif автоматически открываются Excel при двойном нажатии.

Шаг за шагом:

  • Измените расширение файла с .csv на .dif
  • Дважды щелкните файл, чтобы открыть его в Excel.
  • Будет запущен «Мастер импорта файлов».
  • Установите «Тип файла» в «Разграниченный» и нажмите кнопку «Далее».
  • В разделе «Разделители» отметьте «Запятая» и нажмите кнопку «Далее».
  • Нажмите на каждый столбец отображаемых данных и выберите «Формат данных столбца». Столбец со значением «005» должен быть отформатирован как «Текст».
  • Нажмите кнопку «Готово», файл откроется Excel с указанными вами форматами.

Не используйте CSV, используйте SYLK.
http://en.wikipedia.org/wiki/SYmbolic_LinK_(SYLK)

Это дает гораздо больший контроль над форматированием, и Excel не будет пытаться угадать тип поля, исследуя содержимое. Это выглядит немного сложнее, но вы можете уйти с использованием очень небольшого подмножества.

Это работает для Microsoft Office 2010, Excel версии 14

Я неправильно читаю предпочтение OP «чтобы что-то сделать с самим файлом». Я все еще держу это для тех, кто хочет, чтобы решение форматирования импорта напрямую

  1. Откройте пустой (новый) файл (Файл -> Новое из рабочей книги)
  2. Откройте мастер импорта (данные -> из текста)
  3. Выберите ваш .csv-файл и Import
  4. В диалоговом окне выберите «Разграничено» и нажмите «Далее».
  5. Выберите разделители (снимите отметку со всего, кроме «запятой»), выберите свои классификаторы текста (вероятно {Нет}), нажмите «Далее»
  6. В поле « Предварительный просмотр данных» выберите столбец, который вы хотите быть текстовым. Он должен подчеркнуть.
  7. В поле Формат данных столбца выберите «Текст».
  8. Нажмите Готово.

Вы можете просто форматировать свой диапазон как текст.

Также здесь есть хорошая статья о числовых форматах и ​​о том, как вы можете их программировать.

Фактически я обнаружил, что, по крайней мере, начиная с Office 2003, вы можете сохранить электронную таблицу Excel в виде XML-файла. Таким образом, я могу создать XML-файл, и когда я его дважды щелкнул, он будет открыт в Excel. Он обеспечивает тот же уровень контроля, что и SYLK, но синтаксис XML более интуитивно понятен.

Добавление неиспользуемого пространства в ячейке могло бы помочь. Например: "firstvalue";"secondvalue";"005 ";"othervalue"

Это заставляет Excel обрабатывать его как текст, и пространство не видно. В Windows вы можете добавить неразрывное пространство, набрав alt + 0160. См. Здесь для получения дополнительной информации: http://en.wikipedia.org/wiki/Non-breaking_space

Пробовал в Excel 2010. Надеюсь, это поможет людям, которые все еще ищут вполне правильное решение этой проблемы.

Я столкнулся с этой проблемой при экспорте CSV-данных из кода C # и решил это, добавив первые нулевые данные с символом табуляции \ t, поэтому данные были интерпретированы как текстовые, а не числовые в Excel (но в отличие от предваряющих других символов, t).

Мне понравился подход «001», но это не позволило бы снова импортировать данные CSV в мое приложение C #, не удаляя все это форматирование из файла CSV импорта (вместо этого я просто обрезаю данные импорта) ,

Я верю, что при импорте файла вы можете выбрать тип столбца. Сделайте текст вместо номера. На данный момент у меня нет копии перед собой, чтобы проверить.

Загрузите csv в oleDB и принудительно введите все выводимые типы данных в строку

Я задал тот же вопрос, а затем ответил на него кодом.

в основном, когда загружается файл csv, драйвер oledb делает предположения, вы можете сказать, какие предположения сделать.

Мой код заставляет все типы данных привязываться, хотя … очень легко изменить схему. для моих целей я использовал xslt, чтобы получить ti так, как я хотел, но я разбираю большое количество файлов.

Я знаю, что это старый вопрос, но у меня есть решение, которое здесь не указано.

Когда вы создаете csv, добавьте пробел после запятой, но до вашего значения, например , 005,

Это помогло предотвратить автоматическое форматирование даты в Excel 2007.

Метод импорта импорта текста НЕ работает, когда импортируемый CSV-файл имеет разрывы строк внутри ячейки. Этот метод обрабатывает этот сценарий (по крайней мере, с данными с разделителями табуляции):

  1. Создать новый файл Excel
  2. Ctrl + A, чтобы выбрать все ячейки
  3. В поле со списком номеров формата выберите Текст
  4. Открыть файл с разделителями табуляции в текстовом редакторе
  5. Выделить все, скопировать и вставить в Excel

Это сбивало меня с ума весь день (так как вы действительно не можете управлять типами столбцов Excel, прежде чем открывать файл CSV), и это сработало для меня, используя VB.NET и Excel Interop:

  'Convert .csv file to .txt file. FileName = ConvertToText(FileName) Dim ColumnTypes(,) As Integer = New Integer(,) {{1, xlTextFormat}, _ {2, xlTextFormat}, _ {3, xlGeneralFormat}, _ {4, xlGeneralFormat}, _ {5, xlGeneralFormat}, _ {6, xlGeneralFormat}} 'We are using OpenText() in order to specify the column types. mxlApp.Workbooks.OpenText(FileName, , , Excel.XlTextParsingType.xlDelimited, , , True, , True, , , , ColumnTypes) mxlWorkBook = mxlApp.ActiveWorkbook mxlWorkSheet = CType(mxlApp.ActiveSheet, Excel.Worksheet) Private Function ConvertToText(ByVal FileName As String) As String 'Convert the .csv file to a .txt file. 'If the file is a text file, we can specify the column types. 'Otherwise, the Codes are first converted to numbers, which loses trailing zeros. Try Dim MyReader As New StreamReader(FileName) Dim NewFileName As String = FileName.Replace(".CSV", ".TXT") Dim MyWriter As New StreamWriter(NewFileName, False) Dim strLine As String Do While Not MyReader.EndOfStream strLine = MyReader.ReadLine MyWriter.WriteLine(strLine) Loop MyReader.Close() MyReader.Dispose() MyWriter.Close() MyWriter.Dispose() Return NewFileName Catch ex As Exception MsgBox(ex.Message) Return "" End Try End Function 

При открытии CSV вы получаете мастер импорта текста. На последнем шаге мастера вы должны иметь возможность импортировать конкретный столбец в виде текста, сохраняя при этом префикс 00. После этого вы можете форматировать ячейку любым способом, который вы хотите.

Я пробовал с Excel 2007 и, похоже, работал.

Ну, excel никогда не всплывает мастер для CSV-файлов. Если вы переименуете его в .txt, вы увидите мастера, когда в следующий раз вы будете делать File> Open in Excel.

Поместите одну цитату перед полем. Excel будет рассматривать его как текст, даже если он выглядит как число.

 ...,`005,... 

EDIT: Это неправильно. Апоптоп-трюк работает только при вводе данных непосредственно в Excel. Когда вы используете его в CSV-файле, апостроф появляется в поле, которое вам не нужно.

http://support.microsoft.com/kb/214233

Просто добавьте 'перед номером в документе CSV.

  • Добавление данных при записи из документа excel в txt
  • Экспорт групп столбцов Excel в виде файлов CSV
  • Экспорт данных из таблицы mysql в CSV-файл
  • Импортировать несколько CSV-файлов в столбцы
  • Извлечение IP и соответствующей ячейки столбца, когда несколько элементов на ячейку необходимо разделить
  • Проблемы с экстрактором экстракта java
  • Laravel Создайте CSV, поддерживающий Microsoft Office Excel
  • Чтение Excel csv с использованием PHP Строки отключены
  • Как записать файл в кодировке ANSI на C #?
  • csv file print columnwise raw значения для значений больше 0,5
  • Сохранение активной рабочей книги при использовании макроса из надстройки
  • Давайте будем гением компьютера.