ПредишенСледващото

Много работа с PHP и MySQL, изправени пред проблема на данни за внос / износ на файл CSV, разбираеми за Excel. fputcsv () и fgetcsv () не работят, както бихме искали. И отваряне получената CSV-файл в Excel, ние виждаме половин ред в една клетка, и от друга страна на линията през второто. Понякога тези грешки, свързани с тълкуването на Excel данни, свързани с ограничения си брой данни в една клетка - 50 000 знака. ако повече, а след това останалата който се представят данните на нов ред.

Описание CSV формат за Excel

програма Microsoft Excel разбира CSV файлове като общата килия, разделени с точка и запетая (;), и линията завършва с символ за нов ред. Ако, обаче, в по-голямата клетка съдържа запетая (;) или нов ред, след това тази клетка е ограден от кавички ( ").

Например.
yacheyka1; "Yacheyka2 със символ, или няколко реда"; yacheyka3;

Ако има кавички ( ") в самата клетка, те се удвоява.

Например.
Тази "кавички => Това е" "кавички;

Това, което прави стандартна характеристика в CSV износ в PHP

fputcsv функция ($ csv_file. $ масив, $ разделител = ',', $ корпус = ' "') изнася масив $ масив до файла $ csv_file на на. В същото време като разделител по подразбиране се използва запетая ($ разделител = ',') както и символът рамкиране - кавичките ($ ограждащи = "").

Тя ще изглежда, за да запише данните в CSV формат за MS Excel само трябва да инсталирате $ разделител = ';', и си тръгна от $ ограждащи кавички ( "), но в действителност, грешки се случват интерпретация Excel файл.

Тук е уловката: функцията fputcsv като бягство характер - наклонена черта (\). И това не може да се променя. Това означава, че ако напишете типа данни Lala \ "Lala, след влизането в символ не цитира двойно файл, тъй като тя е защитена от наклонена черта, а след това Excel смята за своя граница клетка, въпреки че това не е така.

Изход. използвате своя износ функция в CSV и т.н. ще бъдат дадени на текста му.

Това, което прави стандартната функция за внос на CSV в PHP

вноса на PHP функция от CSV-връзвам fgetcsv ($ csv_file, $ дължина = 0, $ разделител = ',', $ корпус = '' ", $ бягство = '\\') внос от CSV файл $ csv_file низ от максимална дължина $ дължината, ако а = 0, а след това може да бъде всеки сепаратор подразбиране е символ запетая (,) като символ рамкиране. - марка ( ") и символа за бягство - наклонена черта (\).

Тъй като PHP версия 5.3 на специалния символ в тази функция, можете да зададете своя собствена.

За да експортирате данните с помощта на PHP към CSV формат за Excel, достатъчно, за да всичко останало като бягство характер, определени кавички. Това означава, че $ разделител = ';', $ корпус = '' ", $ бягство = '" ".

Обобщените функции работят с CSV

Как да отворите Excel CSV файл в UTF-8

За да Excel нормално отворен CSV файлове в UTF-8, не е достатъчно просто да се напише това кодиране на данните. За да "каже" Excel използват Unicode, приета в началото на файла, за да поставите 3-байт последователност: EF BB BF. Това не е официално решение, то е просто функция на откриване на Excel CSV файлове.

За по-голяма яснота, ние даваме част от код на PHP:

Освен това вече износ данни в UTF-8 кодиране използване my_fputcsv (функция). Excel отваря такива файлове перфектно.

Важно! Въпреки факта, че файлът ще се отвори в kdirovke UTF-8, Excel ще го спаси, така или иначе в прозорци-1251.

Как да внасят в PHP

Свързани статии

Подкрепете проекта - споделете линка, благодаря!