Быстрое чтение csv в c# (fast read csv)

Содержание:

Указание разделителя¶

Иногда в качестве разделителя используются другие значения. В таком
случае должна быть возможность подсказать модулю, какой именно
разделитель использовать.

Например, если в файле используется разделитель (файл
sw_data2.csv):

hostname;vendor;model;location
sw1;Cisco;3750;London
sw2;Cisco;3850;Liverpool
sw3;Cisco;3650;Liverpool
sw4;Cisco;3650;London

Достаточно просто указать, какой разделитель используется в reader (файл
csv_read_delimiter.py):

import csv

with open('sw_data2.csv') as f
    reader = csv.reader(f, delimiter=';')
    for row in reader
        print(row)

Способы преобразования

Далее рассмотрим, какими программами осуществляется конвертирование CSV в VCARD.

Способ 1: CSV to VCARD

CSV to VCARD представляет собой приложение с однооконным интерфейсом, которое было создано специально для конвертирования CSV в VCARD.

  1. Запускаем софт, для добавления файла CSV нажимаем на кнопку «Browse».

Открывается окошко «Проводника», где перемещаемся в необходимую папку, обозначаем файл, а затем жмем на «Открыть».

Объект импортируется в программу. Далее нужно определиться с выходной папкой, которая по умолчанию является той же, что и место хранения исходного файла. Для задания другой директории нужно щелкнуть по «Сохранить как».

При этом открывается эксплорер, где выбираем желаемую папку и кликаем на «Сохранить». При надобности также можно отредактировать имя выходного файла.

Настраиваем соответствие полей искомого объекта с аналогичным в файле VCARD при помощи нажатия на «Select». В появившемся перечне выбираем подходящий пункт. При этом, если полей несколько, то для каждого из них необходимо будет выбрать свое значение. В данном случае указываем только одно — «Full Name», которому будут соответствовать данные из «№;Telephone».

Определяем кодировку в поле «VCF Encoding». Выбираем «Default» и нажимаем на «Convert» для начала преобразования.

По завершении процесса преобразования выводится соответствующее сообщение.

При помощи «Проводника» можно посмотреть сконвертированные файлы, перейдя в папку, которая была указана при настройке.

Способ 2: Microsoft Outlook

Microsoft Outlook является популярным почтовым клиентом, который поддерживает форматы CSV и VCARD.

  1. Открываем Аутлук и заходим в меню «Файл». Здесь нажимаем на «Открыть и экспортировать», а затем на «Импорт и экспорт».

В результате открывается окно «Мастер импорта и экспорта», в котором выбираем пункт «Импорт из другой программы или файла» и кликаем «Далее».

В поле «Выберите тип файла для импорта» обозначаем необходимый пункт «Значения, разделенные запятыми» и жмем «Далее».

Затем нажимаем по кнопке «Обзор» для открытия исходного CSV файла.

В результате открывается «Проводник», в котором двигаемся к нужной директории, выделяем объект и щелкаем «ОК».

Файл добавляется в окно импорта, где в определённой строке отображается путь к нему. Здесь еще необходимо определить правила работы с дубликатами контактов. Доступны всего три варианта при обнаружении аналогичного контакта. В первом он будет заменяться, во втором будет создана копия, а в третьем – будет проигнорирован. Оставляем рекомендуемое значение «Разрешить создание дубликатов» и кликаем «Далее».

Выбираем папку «Контакты» в Outlook, где должны быть сохранены импортированные данные, после чего жмем на «Далее».

Возможно также задать соответствие полей, нажав одноименную кнопку. Это поможет избежать нестыковок данных при импорте. Подтверждаем импортирование, поставив галочку в поле «Импорт…» и нажимаем «Готово».

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

К сожалению, Аутлук позволяет сохранять в формате vCard только один контакт за раз. При этом, еще нужно помнить, что по умолчанию сохраняется контакт, который предварительно выделен. После этого заходим в меню «Файл», где жмем «Сохранить как».

Запускается обозреватель, в котором перемещаемся в желаемую директорию, при необходимости прописываем новое имя визитной карточки и щелкаем «Сохранить».

На этом процесс преобразования заканчивается. К сконвертированному файлу можно получить доступ с использованием «Проводника» Windows.

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

Опишите, что у вас не получилось.
Наши специалисты постараются ответить максимально быстро.

История

Значения, разделенные запятыми, — это формат данных, предшествующий персональным компьютерам более чем на десять лет: компилятор IBM Fortran (расширенный уровень H) под OS / 360 поддерживал CSV в 1972 году. Ввод / вывод по спискам («свободная форма») был определен в , одобрен в 1978 году. При вводе со списком использовались запятые или пробелы в качестве разделителей, поэтому строки символов без кавычек не могли содержать запятых или пробелов.

Термин «значения, разделенные запятыми» и аббревиатура «CSV» использовались к 1983 году. В руководстве для компьютера Osborne Executive, в который была включена электронная таблица SuperCalc , задокументировано соглашение о цитировании CSV, которое позволяет строкам содержать встроенные запятые, но в руководстве это делается. не указывать соглашение о встраивании кавычек в строки, заключенные в кавычки.

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

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

Основная инициатива по стандартизации — преобразование « де-факто нечеткого определения» в более точное и де-юре — была предпринята в 2005 году , когда был выпущен RFC   , определяющий CSV как тип контента MIME . Позже, в 2013 году, некоторые недостатки RFC 4180 были устранены рекомендацией W3C.

В 2015 году W3C , пытаясь улучшить CSV с помощью формальной семантики , опубликовал первые проекты рекомендаций для стандартов CSV-метаданных, которые начинались как рекомендации в декабре того же года.

Майкрософт Эксель

Чтобы создать файл CSV с помощью Microsoft Excel, запустите Excel, а затем откройте файл, который вы хотите сохранить в формате CSV . Например, ниже приведены данные, содержащиеся в нашем примере листа Excel:

Вещь Стоимость Продано прибыль
клавиатура $ 10, 00 $ 16, 00 $ 6, 00
монитор $ 80, 00 $ 120, 00 $ 40, 00
мышь $ 5, 00 $ 7, 00 $ 2, 00
Всего $ 48, 00

После открытия нажмите « Файл» и выберите « Сохранить как» . В разделе Тип файла выберите CSV (с разделителями-запятыми) или CSV (с разделителями-запятыми) (* .csv), в зависимости от версии Microsoft Excel.

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

 Предмет, Стоимость, Продано, Прибыль Клавиатура, $ 10, 00, $ 16, 00, $ 6, 00 Монитор, $ 80, 00, $ 120, 00, $ 40, 00 Мышь, $ 5, 00, $ 7, 00, $ 2, 00, Итого, $ 48, 00 

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

Чем открыть csv формат на компьютере, программы для работы

Итак, чем открыть csv формат? Рассмотрим проверенные программы для компьютера:

  1. Программа Excel. Если вы установили на компьютер офисный пакет Майкрософт Офис, то наверняка в нем есть данная утилита. С помощью этой программы можно запустить csv файл, нажав на него два раза левой кнопкой компьютерной мыши.
  2. Утилита Notepad++ умеет открывать файлы в csv.
  3. Программа Лайбри Офис.
  4. Простой блокнот Microsoft Notepad.
  5. Утилита CSVed. С помощью этой программы можно прочитать документ в csv формате.
  6. Другие программы можете найти в Интернете или на блоге через поиск.

Разберем программу CSVed на практике и откроем в ней csv документ. Несмотря на то, что программа на английском языке, с ней разберется любой пользователь ПК. Сначала скачайте и установите ее на компьютер. Далее нажмите в программе кнопку File затем, Open, чтобы выбрать документ в формате csv с компьютера (скрин 2).

Если после загрузки файла, программа его не откроет, попробуйте открыть документ в блокноте. Для этого нажмите правой кнопкой мыши по файлу, далее «Открыть с помощью» и из меню выберите приложение «Блокнот» (скрин 3).

После этого вы увидите открытый для просмотра документ в формате csv (скрин 4).

Далее откроем данный формат на Андроид, айфон и на специальных сервисах.

Как открыть формат CSV на смартфоне

Подобные таблицы можно вполне успешно просматривать и на смартфонах под управлением Android или iOS. Рассмотрим, чем открыть CSV на телефоне — предложим пару наиболее популярных приложений.

CSV Viewer

CSV Viewer – бесплатный CSV-reader, поддерживающий различные типы разделителей (запятые, пробелы, табуляции и т. д.). Можно добавлять CSV файлы из встроенного хранилища смартфона, а также загружать объекты из облачных дисков.

Работает так:

  1. Разрешите приложению получить доступ к хранилищу. Выберите искомый объект среди обнаруженных.
  2. Просматривайте содержимое. Для включения фильтров и изменения некоторых параметров отображения используйте панель инструментов, расположенную в нижней части экрана.

Documento Office

Documento Office – платный офисный пакет, с помощью которого можно открывать документы и таблицы. Находится на стадии активной разработки, заявленные нововведения постепенно добавляются.

Развернуть файл CSV можно по следующей инструкции:

  1. Согласитесь с условиями использования, найдите необходимый объект через встроенный проводник.
  2. Просматривайте таблицу, изменяя масштаб. Если нужен редактор CSV, придётся отказаться от этого инструмента.

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

Как преобразовать файл Excel в CSV

Если требуется экспортировать файл Excel в какое-либо другое приложение, например, в адресную книгу Outlook или в базу данных Access, предварительно преобразуйте лист Excel в файл CSV, а затем импортируйте файл .csv в другое приложение. Ниже дано пошаговое руководство, как экспортировать рабочую книгу Excel в формат CSV при помощи инструмента Excel – «Сохранить как».

  1. В рабочей книге Excel откройте вкладку Файл (File) и нажмите Сохранить как (Save as). Кроме этого, диалоговое окно Сохранение документа (Save as) можно открыть, нажав клавишу F12.
  2. В поле Тип файла (Save as type) выберите CSV (разделители – запятые) (CSV (Comma delimited)).Кроме CSV (разделители – запятые), доступны несколько других вариантов формата CSV:
    • CSV (разделители – запятые) (CSV (Comma delimited)). Этот формат хранит данные Excel, как текстовый файл с разделителями запятыми, и может быть использован в другом приложении Windows и в другой версии операционной системы Windows.
    • CSV (Macintosh). Этот формат сохраняет книгу Excel, как файл с разделителями запятыми для использования в операционной системе Mac.
    • CSV (MS-DOS). Сохраняет книгу Excel, как файл с разделителями запятыми для использования в операционной системе MS-DOS.
    • Текст Юникод (Unicode Text (*txt)). Этот стандарт поддерживается почти во всех существующих операционных системах, в том числе в Windows, Macintosh, Linux и Solaris Unix. Он поддерживает символы почти всех современных и даже некоторых древних языков. Поэтому, если книга Excel содержит данные на иностранных языках, то рекомендую сначала сохранить её в формате Текст Юникод (Unicode Text (*txt)), а затем преобразовать в CSV, как описано далее в разделе .

Замечание: Все упомянутые форматы сохраняют только активный лист Excel.

  1. Выберите папку для сохранения файла в формате CSV и нажмите Сохранить (Save).После нажатия Сохранить (Save) появятся два диалоговых окна. Не переживайте, эти сообщения не говорят об ошибке, так и должно быть.
  2. Первое диалоговое окно напоминает о том, что В файле выбранного типа может быть сохранён только текущий лист (The selected file type does not support workbooks that contain multiple sheets). Чтобы сохранить только текущий лист, достаточно нажать ОК.Если нужно сохранить все листы книги, то нажмите Отмена (Cancel) и сохраните все листы книги по-отдельности с соответствующими именами файлов, или можете выбрать для сохранения другой тип файла, поддерживающий несколько страниц.
  3. После нажатия ОК в первом диалоговом окне, появится второе, предупреждающее о том, что некоторые возможности станут недоступны, так как не поддерживаются форматом CSV. Так и должно быть, поэтому просто жмите Да (Yes).

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

Основные правила

Существует множество неофициальных документов, описывающих форматы «CSV».
IETF RFC 4180 (обобщенный выше) определяет формат MIME-типа «text / csv», зарегистрированный в IANA .

Правила, типичные для этих и других спецификаций и реализаций CSV, следующие:

CSV — это формат данных с разделителями , в котором поля / столбцы разделены символом запятой, а записи / строки оканчиваются символом новой строки .

Файл CSV не требует определенной кодировки символов , порядка байтов или формата терминатора строки (некоторые программы не поддерживают все варианты конца строки).
Запись заканчивается символом конца строки. Тем не менее, терминаторы строки могут быть встроены как данные в поля, поэтому программное обеспечение должно распознавать заключенные в кавычки разделители строк (см. Ниже), чтобы правильно собрать всю запись, возможно, из нескольких строк.
Все записи должны иметь одинаковое количество полей в одинаковом порядке.
Данные внутри полей интерпретируются как последовательность символов , а не как последовательность битов или байтов (см. RFC 2046, раздел 4.1). Например, числовое количество 65535 может быть представлено как 5 символов ASCII «65535» (или, возможно, в других формах, таких как «0xFFFF», «000065535.000E + 00» и т. Д.); но не как последовательность из 2 байтов, предназначенную для обработки как одно двоичное целое число, а не как два символа (например, числа 11264–11519 имеют запятую в качестве старшего байта 🙂 . Если это соглашение о «обычном тексте» не соблюдается, то CSV-файл больше не содержит достаточной информации для его правильной интерпретации, CSV-файл, скорее всего, не переживет передачу между различными компьютерными архитектурами и не будет соответствовать типу MIME text / csv .

Смежные поля должны быть разделены одной запятой. Однако форматы «CSV» сильно различаются по выбору символа-разделителя. В частности, в языковых стандартах, где запятая используется в качестве десятичного разделителя , вместо нее используются точка с запятой, TAB или другие символы.
1997,Ford,E350

Любое поле может быть заключено в кавычки (то есть заключено в двойные кавычки), в то время как некоторые поля должны быть заключены в кавычки, как указано в следующих правилах и примерах:
«1997»,»Ford»,»E350″

Поля со встроенными запятыми или двойными кавычками должны быть заключены в кавычки.
1997,Ford,E350,»Super, luxurious truck»

Каждый из встроенных символов двойных кавычек должен быть представлен парой символов двойных кавычек.
1997,Ford,E350,»Super, «»luxurious»» truck»

Поля со встроенными разрывами строк должны быть заключены в кавычки (однако многие реализации CSV не поддерживают встроенные разрывы строк).
1997,Ford,E350,»Go get one now
they are going fast»

В некоторых реализациях CSV начальные и конечные пробелы и табуляции обрезаются (игнорируются). Такая обрезка запрещена в RFC 4180, который гласит: «Пробелы считаются частью поля и не должны игнорироваться».
1997, Ford, E350
not same as
1997,Ford,E350

Согласно RFC 4180, пробелы вне кавычек в поле не допускаются; однако в RFC также говорится, что «Пробелы считаются частью поля и не должны игнорироваться». и «Разработчики должны быть консервативными в том, что вы делаете, и либеральными в том, что вы принимаете от других» (RFC 793, раздел 2.10) при обработке файлов CSV ».
1997, «Ford» ,E350

В реализациях CSV, которые обрезают начальные и конечные пробелы, поля с такими пробелами как значимые данные должны быть заключены в кавычки.
1997,Ford,E350,» Super luxurious truck «

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

Однако обратите внимание, что двойные кавычки не допускаются в полях без кавычек в соответствии с RFC 4180.
Los Angeles,34°03′N,118°15′W
New York City,40°42′46″N,74°00′21″W
Paris,48°51′24″N,2°21′03″E

Первая запись может быть «заголовком», который содержит имена столбцов в каждом из полей (нет надежного способа узнать, делает ли файл это или нет; однако редко используются символы, отличные от букв, цифр и подчеркивания в таких именах столбцов).
Year,Make,Model
1997,Ford,E350
2000,Mercury,Cougar

Важная информация о редактировании файлов csv

Вся система выходит из строя, если в строке стоит пропущенная или лишняя запятая. Каждое значение после этого отсутствующего или лишнего поля данных будет введено в неправильный столбец

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

Другими словами, порядок, в котором заголовки столбцов появляются в первой строке, должен повторяться в последующих строках данных, чтобы данные в каждом поле можно было сопоставить с правильным столбцом. У вас есть возможность опустить любые столбцы, в которых не хотите добавлять или редактировать данные, если только этот столбец не требуется для инструмента загрузки данных, базы данных или правил конфигурации сайта. На самом деле рекомендуется опускать ненужные столбцы, чтобы упростить структуру файла данных и снизить вероятность появления ошибок в ненужном столбце. Нельзя пропустить поля, необходимые для инструмента «Загрузить данные», но можно опустить поля, необходимые для базы данных, при условии, что значение по умолчанию подходит для всех записей, которые вы добавляете или редактируете. Если значение по умолчанию не подходит ни для одной из записей в вашем файле данных, необходимо включить этот столбец и указать соответствующие значения для этих записей. Поля назначения в базе данных хранят различные версии значений, представленных на веб-страницах. Например, пользовательская цель «Представитель компании» хранится в базе данных как «company_rep». Значения сопоставляются друг с другом и преобразуются по мере загрузки и выгрузки данных из базы данных. Возможно, будет проще использовать значение базы данных, которое можно увидеть, при загрузке файла данных CSV по ссылкам в верхней части файла данных для загрузки.

Как преобразовать файл csv в файл xls или импортировать / открыть файл csv в Excel?

Из этого туториала Вы узнаете, как открыть файл csv в Excel, как преобразовать файл csv в файл xls и как импортировать файл csv в Excel.

Открыть CSV-файл в Excel

Чтобы открыть файл csv в Excel, выполните следующие действия:

1. Включите Excel и щелкните Файл/Кнопка управления > Откройте.

В Excel 2013 нужно нажать Файл > Откройте > Компьютер > Приложения. Смотрите скриншот:

2. Затем Откройте появилось диалоговое окно и откройте папку, в которой находится ваш CSV-файл, а затем выберите Текстовые файлы из раскрывающегося списка рядом с Файлимя текстовое поле, затем вы можете выбрать свой CSV-файл.

3. Нажмите Откройте кнопка. Теперь файл csv открыт в Excel.

Обычно Excel не поддерживает возможность быстрого экспорта или сохранения диапазона в виде файла CSV или Excel. Если вы хотите сохранить диапазон данных в виде CSV или книги в Excel, вам может потребоваться использовать макрос VBA для этого или скопировать диапазон в буфер обмена и вставить его в новую книгу, а затем сохранить книгу как CSV или Рабочая тетрадь. дополняет Excel с помощью Диапазон экспорта в файл утилита для пользователей Excel, которые хотят быстро выполнить следующие операции :  Нажмите, чтобы получить 30-дневную полнофункциональную бесплатную пробную версию!
 
Kutools for Excel: с более чем 300 удобными надстройками Excel, вы можете попробовать бесплатно без ограничений в течение 30 дней.

Преобразование файла CSV в файл XLS

Преобразовать файл csv в файл xls очень просто.

1. Откройте файл csv, затем щелкните Файл or Кнопка управления > Сохранить как. Смотрите скриншот:

В Excel 2013 щелкните Файл > Сохранить как > Компьютер > Приложения.

2. Затем в Сохранить как выберите папку, в которой нужно разместить новый файл, и выберите Книга Excel из Сохранить как тип раскрывающийся список. Смотрите скриншот:

3. Нажмите скидка. Затем файл csv был преобразован в файл xls.

Импортировать CSV-файл в Excel

Если вы хотите импортировать файл CSV в книгу Excel, вы можете сделать следующее:

1. Включите лист, который вы хотите импортировать в CSV-файл, и нажмите Данные > Из текста. Смотрите скриншот:

2. в Импортировать текстовый файл откройте папку, в которой находится ваш CSV-файл, и выберите Текстовые файлы в раскрывающемся списке рядом с текстовым полем «Имя файла», а затем выберите файл csv.

3. Нажмите Импортировать, Затем Мастер импорта текста появляется диалоговое окно, и отметьте нужный вариант в Выберите тип файла, который лучше всего описывает ваши данные раздел. Здесь я проверяю разграниченный потому что мои данные разделены запятыми. Смотрите скриншот:

4. Затем нажмите Next чтобы перейти к следующему шагу, затем проверьте разделители, которые вам нужны для разделения данных в Разделители раздел.

5. Нажмите Next перейти к шагу 3 Мастер импорта текста, и выберите столбец из Предварительный просмотр данных раздел, а затем проверьте формат, который вам нужно применить в этом столбце в Формат данных столбца раздел. Здесь я хочу отформатировать первый столбец моих данных как дату. Смотрите скриншот:

6. Нажмите Завершить, Затем Импортировать данные Появился диалог, в котором вы можете выбрать место для импорта данных. Смотрите скриншот:

7. Нажмите OK. Теперь файл csv импортирован в Excel.

Наконечник:

Когда данные исходного CSV-файла были изменены, вы можете нажать Данные > Обновить все чтобы снова выбрать этот файл CSV, чтобы обновить данные CSV в Excel.

Относительные статьи

Варианты просмотра CSV-файла в Excel

От теории к практике — разбираемся, как открыть файл расширения CSV на примере ОС Windows 10.

Для этого есть 3 способа:

  1. двойным кликом по документу из проводника;
  2. по вкладке «Файл» из запущенного Excel;
  3. по вкладке «Данные» в качестве вложения.

Рассмотрим каждый из указанных выше вариантов.

Простейший способ — из Проводника

Как открыть в Экселе файл CSV посредством файлового менеджера:

  • Открываем «Проводник» или «Пуск/Документы».
  • Находим на диске требуемый элемент.
  • Кликаем по нему дважды левой кнопкой мыши.
  • Если документ открылся в блокноте, а не в Экселе, то жмем по нему правой кнопкой.
  • В подменю: «открыть с помощью/выбрать другое приложение».
  • Из списка программ выбираем Excel и ставим галочку «Всегда использовать это приложение».

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

С разделением столбцов в Эксель

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

Процесс выглядит так:

  • Запускаем MS Excel.
  • Переходим в «Данные», где нужно выбрать «Получение внешних данных/Из текста», и ищем требуемый CSV-файл в окне проводника.

Выделяем его, после чего кликаем «Импорт».

В «Мастере текстов» нужно задать три шага интерпретации данных документа. В первом шаге выбираем параметр «с разделителями», а формат файла, желательно, установить «Юникод (UTF-8)».

Разделители нужны для правильного размещения значений в таблице, а формат задает кодировку символов (дабы не получить бред, именуемый в народе кракозябрами: «Oedieay yeaeode»).

Второй шаг отвечает за выбор варианта разделителя. В России используется точка с запятой — выбираем ее.

Последний шаг позволяет изменить формат данных столбцов таблицы. Это необязательная настройка, поэтому ее можно пропустить нажатием «Готово».

Перед импортом данных пользователю дается выбор куда их помещать. Оставляем галочку «Имеющийся лист» и кликаем по «ОК».

В результате получаем правильно сформированную таблицу в первоначальном виде.

Через вкладку «Файл»

Третий способ является чем-то средним между двумя первыми. Мы также пользуемся мастером текстов, но не вставляем данные в книгу, а открываем их отдельным файлом:

Запускаем любой XLS/XLSX документ и выбираем вкладку «Файл» и жмем «Обзор».

Кликаем по искомому CSV-элементу и подтверждаем кнопкой «Открыть».

Следуем аналогично пункту 3 второго способа.

Создание CSV файла в PHP

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

Важным моментом, является кодировка файла. Для корректного отображения кириллицы следует использовать кодировку cp1251 (windows-1251).

Разделитель колонок

Для русского языка символом-разделителем является (точка с запятой). Для англ. (запятая).

Строки содержащие спец символы: должны быть в двойных кавычках .

Двойные кавычки внутри строки, нужно «очистить» поставив перед кавычкой еще одну такую же кавычку: превратиться в . Обрамление в кавычки нужно, чтобы можно было внутри значений колонок использовать разделители , и не переживать что что-то сломается при чтении файла.

Разделитель строк

Для разделения строк в csv файлах можно использовать (возврат каретки и перенос строки, CR LF). В этом случае, если нужен перенос строки внутри значения колонки, то там используется просто .

Также, для разделения строки, может использоваться просто (перенос строки, LF). В этом случае, перенос строки внутри значения колонки должен обозначаться как (возврат каретки CR).

Функция для создания CSV файла
## Создает CSV файл из переданных в массиве данных.
## @param array  $create_data  Массив данных из которых нужно созать CSV файл.
## @param string $file         Путь до файла 'path/to/test.csv'. Если не указать, то просто вернет результат.
## @return string/false        CSV строку или false, если не удалось создать файл.
## ver 2
function kama_create_csv_file( $create_data, $file = null, $col_delimiter = ';', $row_delimiter = "\r\n" ){

	if( ! is_array($create_data) )
		return false;

	if( $file && ! is_dir( dirname($file) ) )
		return false;

	// строка, которая будет записана в csv файл
	$CSV_str = '';

	// перебираем все данные
	foreach( $create_data as $row ){
		$cols = array();

		foreach( $row as $col_val ){
			// строки должны быть в кавычках ""
			// кавычки " внутри строк нужно предварить такой же кавычкой "
			if( $col_val && preg_match('//', $col_val) ){
				// поправим перенос строки
				if( $row_delimiter === "\r\n" ){
					$col_val = str_replace( "\r\n", '\n', $col_val );
					$col_val = str_replace( "\r", '', $col_val );
				}
				elseif( $row_delimiter === "\n" ){
					$col_val = str_replace( "\n", '\r', $col_val );
					$col_val = str_replace( "\r\r", '\r', $col_val );
				}

				$col_val = str_replace( '"', '""', $col_val ); // предваряем "
				$col_val = '"'. $col_val .'"'; // обрамляем в "
			}

			$cols[] = $col_val; // добавляем колонку в данные
		}

		$CSV_str .= implode( $col_delimiter, $cols ) . $row_delimiter; // добавляем строку в данные
	}

	$CSV_str = rtrim( $CSV_str, $row_delimiter );

	// задаем кодировку windows-1251 для строки
	if( $file ){
		$CSV_str = iconv( "UTF-8", "cp1251",  $CSV_str );

		// создаем csv файл и записываем в него строку
		$done = file_put_contents( $file, $CSV_str );

		return $done ? $CSV_str : false;
	}

	return $CSV_str;

}

Использование:

$create_data = array(
	array(
		'Заголовок 1',
		'Заголовок 2',
		'Заголовок 3',
	),
	array(
		'строка 2 "столбец 1"',
		'4799,01',
		'строка 2 "столбец 3"',
	),
	array(
		'"Ёлочки"',
		4900.01,
		'красный, зелёный',
	)
);

echo kama_create_csv_file( $create_data, THEME_PATH .'csv_file.csv' );

/* Получим

Заголовок 1;Заголовок 2;Заголовок 3
"строка 2 ""столбец 1""";"4799,00";"строка 2 ""столбец 3"""
"""Ёлочки""";4900.01;"красный, зелёный"

*/

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *