Как да коригирате йероглифи в excel. Променете кодирането на латиница на кирилица

Как да коригирате йероглифи в excel.  Променете кодирането на латиница на кирилица
Как да коригирате йероглифи в excel. Променете кодирането на латиница на кирилица

Защо се появяват драскулки и йероглифи в Excel? Този проблем може да има няколко опции; ще събера повечето от решенията в тази статия. Е, в същото време ще напиша как да добавям и използвам йероглифни символи в текста.

Проблемът с кодирането често възниква в различни програми. Кой със сигурност се е сблъсквал с проблема с промяната на кодирането. Нека да разгледаме други случаи

Ако виждате драсканици/йероглифи в Excel при отваряне на файл, промяната на кодирането може да помогне. Запазете отново файла, както следва:

В раздела Encoding изберете Unicode (UTF-8) или Cyrillic (Windows)

Запазете отново файла.

Неправилно кодиране при получаване на данни от външни източници. Отваряне на CSV файлове

Ако при вмъкване на данни от други файлове или външни източници получавате драсканици/непознати знаци, също се препоръчва да изясните кодирането. Можете да направите това по следния начин:

На контролната лента изберете раздела Данни и в секцията Получаване на външни данни изберете желания елемент.

Ако вмъквате обикновени данни от файл, т.е. текст или таблица, изберете От текст

Посочете файла, от който вземаме данни, след това изберете формата на данните и най-важното в секцията Формат на файла изберете Unicode (UTF-8).

Какво да изберете с разделител или фиксирана ширина (стъпка 1), както и следващата стъпка (стъпка 2) е описано подробно в това .

В стъпка 3 изберете формата на данните „Общ“.

Отваряне с грешна програма

Също така препоръчвам да проверите с коя програма отваряте Excel файла. Случва се работни книги на Excel 2010 да се отворят в Excel 2003 (или по-ранни версии) с текст, променен на йероглифи. Прочетете повече за форматите на Excel.

Същият проблем възниква периодично, ако отваряте сложни работни книги на Excel с голям набор от данни чрез алтернативни редактори на електронни таблици, като LibreOffice.Calc, Apache OpenOffice и други.

Как да добавя йероглифни знаци в текст?

„Всичко е наред с текста, трябва да вмъкна йероглиф/символ в Excel“, казвате вие. За да вмъкнете символ, отидете в раздела Вмъкване и в раздела Символи изберете Символ.

Можете да намерите почти всеки символ в таблицата със символи

За да го добавите към текста, щракнете върху него.

Споделете нашата статия във вашите социални мрежи:

CSV(Стойности, разделени със запетая) е общ формат за съхраняване на таблични данни (числови и текстови) в обикновен текст. Този файлов формат е популярен и траен поради факта, че огромен брой програми и приложения разбират CSV, поне като алтернативна опция за файлов формат за импортиране/експортиране. Освен това, CSV форматът позволява на потребителя да погледне във файла и незабавно да открие проблем с данните, ако има такъв, да промени CSV разделителя, правилата за цитиране и т.н. Това е възможно, защото CSV е прост текст и дори по-малко опитен потребител може лесно да го разбере без специално обучение.

В тази статия ще разгледаме бързи и ефективни начини за експортиране на данни от Excel в CSV и ще научим как да преобразуваме Excel файл в CSV, като същевременно запазим всички специални и чужди символи непокътнати. Техниките, описани в статията, работят във всички версии на Excel 2013, 2010 и 2007.

Как да конвертирате Excel файл в CSV

Ако искате да експортирате файл на Excel в друго приложение, като например адресна книга на Outlook или база данни на Access, първо преобразувайте работния лист на Excel в CSV файл и след това импортирайте файла .csvкъм друго приложение. По-долу е ръководство стъпка по стъпка как да експортирате работна книга на Excel в CSV формат с помощта на инструмента на Excel – „ Запази като».

коментар:Всички споменати формати запазват само активния Excel лист.


Експортирайте от Excel в CSV с UTF-8 или UTF-16 кодиране

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

Въпросът е, че екипът Запази като > CSV(Запазване като > CSV) ще изкриви всички знаци с изключение на ASCII (Американски стандартен код за обмен на информация). И ако има сдвоени кавички или дълги тирета на листа на Excel (прехвърлени в Excel, например от документ на Word при копиране / поставяне на текст) - такива знаци също ще бъдат обезобразени.

  • UTF-8е по-компактно кодиране, което използва от 1 до 4 байта за всеки знак. Най-често се препоръчва използването на този формат, когато ASCII символите преобладават във файла, т.к повечето от тези символи изискват 1 байт памет. Друго предимство е, че кодирането на UTF-8 файл, съдържащ само ASCII знаци, няма да се различава от същия ASCII файл.
  • UTF-16използва 2 до 4 байта за съхраняване на всеки знак. Моля, обърнете внимание, че не във всички случаи UTF-16 файл изисква повече място в паметта от UTF-8 файл. Например японските знаци заемат 3 до 4 байта в UTF-8 и 2 до 4 байта в UTF-16. Следователно има смисъл да се използва UTF-16, ако данните съдържат азиатски символи, включително японски, китайски и корейски. Съществен недостатък на това кодиране е, че не е напълно съвместимо с ASCII файлове и са необходими специални програми за показване на такива файлове. Имайте това предвид, ако планирате да импортирате получените файлове от Excel някъде другаде.

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

Да кажем, че имаме Excel лист с чужди знаци, в нашия пример това са японски имена.

За да експортирате този Excel лист в CSV файл, като същевременно запазите всички йероглифи, направете следното:


коментар:Не всички прости текстови редактори поддържат напълно Unicode символи, така че някои може да изглеждат като правоъгълници. В повечето случаи това няма да повлияе по никакъв начин на крайния файл и можете просто да го игнорирате или да изберете по-усъвършенстван редактор, например Notepad++.

  1. Тъй като нашият Unicode текстов файл използва разделители на табулатори и ние искаме да го конвертираме в CSV (разделени със запетая), трябва да заменим знаците табулатори със запетаи.

коментар:Ако няма стриктна необходимост да получите файл, разделен със запетая, но имате нужда от всеки CSV файл, който Excel може да разбере, тогава можете да пропуснете тази стъпка, тъй като Microsoft Excel перфектно разбира файлове, разделени с разделители.

коментар:Ако вашият файл е предназначен да се използва извън Excel и UTF-8 е изискване, тогава не правете никакви промени в работния лист или го запазвайте отново в Excel, тъй като това може да причини проблеми при четенето на кодирането. Ако част от данните не се показват в Excel, отворете същия файл в Notepad и направете корекции в данните. Не забравяйте отново да запишете файла във формат UTF-8.

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

Експортирането в UTF-16 CSV файл е много по-бързо и лесно от UTF-8. Проблемът е, че Excel автоматично прилага формата UTF-16, когато записва файла като Unicode текст(Unicode Text).

За да направите това, запазете файла с помощта на инструмента Запази като(Запиши като) в Excel и след това в Windows Explorer променете разширението на създадения файл на .csv. Готов!

Ако имате нужда от CSV файл със запетая или точка и запетая като разделител, заменете всички знаци за табулация съответно със запетаи или точка и запетая в Notepad или друг текстов редактор по ваш избор (има подробни инструкции как да направите това по-рано в тази статия) .

Други начини за конвертиране на Excel файлове в CSV

Описаните по-горе методи за експортиране на данни от Excel в CSV (UTF-8 и UTF-16) са универсални, т.е. подходящ за работа с всякакви специални знаци и във всяка версия на Excel от 2003 до 2013.

Има много други начини за конвертиране на данни от Excel в CSV формат. За разлика от решенията, показани по-горе, тези методи няма да доведат до чист UTF-8 файл (това не се прилага, което може да експортира Excel файлове в няколко опции за UTF кодиране). Но в повечето случаи полученият файл ще съдържа правилния набор от знаци, който след това може безболезнено да се конвертира във формат UTF-8 с помощта на всеки текстов редактор.

Конвертиране на Excel файл в CSV с помощта на Google Таблици

Както се оказа, можете да конвертирате своя Excel файл в CSV много лесно с помощта на Google Sheets. При условие, че Google Диск вече е инсталиран на вашия компютър, следвайте тези 5 прости стъпки:

съвет:Ако вашият Excel файл е сравнително малък, можете да спестите време, като копирате/поставите данните в електронна таблица на Google.


Накрая отворете генерирания CSV файл във всеки текстов редактор, за да се уверите, че всички знаци са запазени правилно. За съжаление CSV файловете, създадени по този начин, не винаги се показват правилно в Excel.

Запазете файла .xlsx като .xls и след това го конвертирайте в CSV файл

Този метод не изисква допълнителни коментари, тъй като всичко вече е ясно от името.

Намерих това решение в един от форумите, посветени на Excel, не помня кой. Честно казано, никога не съм използвал този метод, но според отзивите на много потребители, някои специални знаци се губят, ако се запазят директно от .xlsx V .csv, но остават ако първи .xlsxЗапази като .xls, а след това как .csv, като нас .

По един или друг начин опитайте сами този метод за създаване на CSV файлове от Excel и ако работи, ще ви спести добре време.

Запазване на Excel файл като CSV с помощта на OpenOffice

OpenOffice е пакет от приложения с отворен код, който включва приложение за електронни таблици, което върши чудесна работа при експортиране на данни от Excel в CSV. Всъщност това приложение ви дава достъп до повече опции при конвертиране на таблици в CSV файлове (кодиране, разделители и т.н.), отколкото Excel и Google Sheets взети заедно.

Просто отворете Excel файла в OpenOffice Calc, щракнете Файл > Запази като(Файл > Запиши като) и изберете типа на файла CSV текст(Текст CSV).

Следващата стъпка ви подканва да изберете стойности на параметрите Кодиране(Набори от знаци) и Разделител на полето(Разделител на полето). Разбира се, ако искаме да създадем разделен със запетая UTF-8 CSV файл, ние избираме UTF-8и въведете запетая (,) в съответните полета. Параметър Текстов разделител(Текстов разделител) обикновено се оставя непроменен - ​​кавички (“). След това щракнете Добре.

По същия начин за бързо и безболезнено преобразуване от Excel в CSV можете да използвате друго приложение – LibreOffice. Съгласете се, би било чудесно, ако Microsoft Excel предостави възможност за конфигуриране на параметри по същия начин при създаване на CSV файлове.

В тази статия говорих за методите, които познавам, за конвертиране на Excel файлове в CSV. Ако знаете по-ефективни методи за експортиране от Excel в CSV, моля, споделете го в коментарите. Благодаря ви за вниманието!

Имам файл на Excel, който има някои испански знаци (тилди и т.н.), които трябва да конвертирам в CSV файл, за да използвам като файл за импортиране. Въпреки това, когато запазя като CSV, той обезобразява "специалните" испански знаци, които не са ASCII знаци. Това изглежда също така се случва с леви и десни кавички и тирета, което изглежда идва от оригиналния потребител, създаващ Excel файла на Mac.

тъй като CSV е просто текстов файл, сигурен съм, че може да се справи с UTF8 кодиране, така че предполагам, че това е ограничение на Excel, но търся начин да стигна от Excel до CSV и да съхранявам не-ASCII знаци .

30 отговора

Забележка: Внимавайте с поверителни данни от Google Таблици.

след запазване в CSV под Excel на зададения команден ред:

Iconv -f cp1250 -t utf-8 file-encoded-cp1250.csv > file-encoded-utf8.csv

(Не забравяйте да замените cp1250 с вашето кодиране).

работи бързо и е страхотен за големи файлове, като база данни с пощенски кодове, които не могат да бъдат импортирани в GoogleDocs (ограничение от 400 000 клетки).

Ако приемем среда на Windows, запазете и работете с файла както обикновено в Excel, но след това отворете записания Excel файл в Gnome Gnumeric (безплатно). Запазете Gnome Gnumeric таблицата като CSV, което - така или иначе за мен - я записва като UTF-8 CSV.

лесен начин да направите това: изтеглете open office(), изтеглете електронната таблица и отворете файла на excel (.xls или .xlsx). След това просто го запазете като CSV текстов файл и ще се отвори прозорец с молба да запишете текущия формат или като .ODF формат. Изберете „Запазване на текущия формат“ и в новия прозорец изберете най-подходящата за вас опция, според езика, на който е написан вашият файл. За испански изберете Западна Европа (Windows-1252/WinLatin 1) и файлът ще работи добре. Ако изберете Unicode (UTF-8), той няма да работи с испански знаци.

Аз също се сблъсках със същия проблем, но има просто решение за това.

  1. отворете файла xlsx в Excel 2016 или по-нова версия.
  2. В „Запазване като“ изберете тази опция: „(CSV UTF-8 (разделени със запетая)*.csv)“

Работи чудесно и създава csv файл, който може да бъде импортиран във всеки софтуер. Импортирах този csv файл в моята база данни SQLITE и той работи добре с всички уникод знаци.

Написах малък Python скрипт, който може да експортира листове в UTF-8.

просто трябва да предоставите файла на Excel като първи параметър и след това листовете, които искате да експортирате. Ако не са предоставени листове, скриптът експортира всички листове, присъстващи във файла на Excel.

#!/usr/bin/env python # експортиране на листове с данни от xlsx в csv от openpyxl import load_workbook импортиране на csv от os import sys reload(sys) sys.setdefaultencoding("utf-8") def get_all_sheets(excel_file): sheets = workbook = load_workbook(excel_file,use_iterators=True,data_only=True) all_worksheets = workbook.get_sheet_names() for worksheet_name in all_worksheets: sheets.append(worksheet_name) return sheets def csv_from_excel(excel_file, sheets): workbook = load_workbook(excel_file,use_iterators=True ,data_only=True) за име_на_работен_лист в листове: print("Експортиране " + име_на_на_лист + " ...") опитайте: worksheet = workbook.get_sheet_by_name(име_на_работен_лист) освен KeyError: print("Не може да се намери " + име_на_на_работен лист) sys.exit (1) your_csv_file = open("".join(), "wb") wr = csv.writer(your_csv_file, quoting=csv.QUOTE_ALL) за ред в worksheet.iter_rows(): lrow = за клетка в ред: lrow. append(cell.value) wr.writerow(lrow) print(" ... done") your_csv_file.close() if not 2<= len(sys.argv) <= 3: print("Call with " + sys.argv + " ") sys.exit(1) else: sheets = if len(sys.argv) == 3: sheets = list(sys.argv.split(",")) else: sheets = get_all_sheets(sys.argv) assert( sheets != Няма и len(sheets) > 0) csv_from_excel(sys.argv, sheets)

CSV е де факто стандартът за взаимно свързване на разнородни системи, за прехвърляне и обработка на големи данни с „твърда“ таблична структура. Много езици за програмиране на скриптове имат вградени инструменти за анализ и генериране; той се разбира добре както от програмисти, така и от обикновени потребители, а проблемите със самите данни се откриват лесно, както се казва, на око.

Историята на този формат датира от поне 30 години. Но дори сега, в ерата на широкото използване на XML, CSV все още се използва за качване и изтегляне на големи количества данни. И въпреки факта, че самият формат е описан доста добре в RFC, всеки го разбира по свой начин.

В тази статия ще се опитам да обобщя съществуващите познания за този формат, да посоча типичните грешки и също така да илюстрирам описаните проблеми, използвайки примера на кривата на внедряване на импорт-експорт в Microsoft Office 2007. Ще покажа също как да заобиколите тези проблеми ( включително автоматично преобразуване на типа Excel в DATETIME и NUMBER) при отваряне на .csv.

Нека започнем с факта, че форматът CSV всъщност се отнася до три различни текстови формата, които се различават по разделителните знаци: самият CSV (стойности, разделени със запетая), TSV (стойности, разделени с табулатор) и SCSV (стойности, разделени с точка и запетая - стойности разделени с точка и запетая). В реалния живот и трите могат да се нарекат един CSV; разделителният знак в най-добрия случай се избира по време на експортиране или импортиране и по-често просто се „зашива“ вътре в кода. Това създава много проблеми, когато се опитвате да го разберете.

Като илюстрация, нека вземем една на пръв поглед тривиална задача: импортиране на данни от таблица в Microsoft Excel в Microsoft Outlook.

Microsoft Excel има инструменти за експортиране на CSV, а Microsoft Outlook има съответните инструменти за импортиране. Какво може да бъде по-просто - направете файл, подайте го в имейл програмата и работата е свършена? Без значение как е.

Нека създадем тестова таблица в Excel:

... и нека се опитаме да го експортираме в три текстови формата:

Какво заключаваме от това?.. Това, което Microsoft нарича "CSV (стойност, разделена със запетая)" тук всъщност е формат, разделен с точка и запетая. Форматът на Microsoft е строго Windows-1251. Следователно, ако имате Unicode знаци в Excel, те ще се показват като въпросителни знаци в CSV изхода. Освен това фактът, че прекъсванията на редовете винаги са двойка знаци, означава, че Microsoft глупаво поставя в кавички всичко, където вижда точка и запетая. Освен това, ако изобщо нямате Unicode символи, можете да спестите от размера на файла. Освен това Unicode се поддържа само от UTF-16, а не от UTF-8, което би било много по-логично.

Сега нека видим как Outlook гледа на това. Нека се опитаме да импортираме тези файлове от него, като посочим същите източници на данни. Outlook 2007: Файл -> Импортиране и експортиране... -> Импортиране от друга програма или файл. След това изберете формата на данните: „Стойности, разделени със запетая (Windows)“ и „Стойности, разделени с раздели (Windows)“.

Двата продукта на Microsoft не се разбират, напълно им липсва възможност за предаване на структурирани данни чрез текстов файл. За да работи всичко, е необходим програмист, който „танцува с тамбура“.

Спомняме си, че Microsoft Excel може да работи с текстови файлове и да импортира данни от CSV, но във версия 2007 прави това много странно. Например, ако просто отворите файл през менюто, той ще се отвори без разпознаване на формат, точно като текстов файл, поставен изцяло в първата колона. Ако щракнете двукратно върху CSV, Excel получава друга команда и импортира CSV, както трябва, без да задава ненужни въпроси. Третата опция е да вмъкнете файла в текущия лист. В този интерфейс можете да настроите разделители и веднага да видите какво се случва. Но има едно нещо: не работи добре. Например Excel не разбира кавички за нов ред в полета.

Освен това една и съща функция за запазване на CSV, извикана през интерфейса и чрез макрос, работи по различен начин. Макро опцията изобщо не разглежда регионалните настройки.

За съжаление няма CSV стандарт като такъв, но междувременно има т.нар. бележка. Това е RFC 4180 от 2005 г., който описва всичко доста разумно. При липса на нещо друго, правилно е поне да се придържате към RFC. Но за съвместимост с Excel трябва да вземете предвид неговите характеристики.

  • между редовете - CRLF linefeed [според мен не трябваше да го ограничават до два байта, т.е. както CRLF (0x0D, 0x0A), така и CR 0x0D]
  • разделителите са запетаи, не трябва да има запетая в края на реда,
  • CRLF в последния ред не е задължителен,
  • първият ред може да бъде заглавен ред (не е маркиран по никакъв начин)
  • интервалите около разделителя със запетая се игнорират.
  • Ако стойността съдържа CRLF, CR, LF (знаци за разделяне на редове), двойна кавичка или запетая (знак за разделяне на полета), тогава поставянето на стойността в кавички е задължително. В противен случай е допустимо.
  • тези. Разрешени са прекъсвания на редове в полето. Но такива стойности на полето трябва да бъдат цитирани,
  • ако има двойни кавички вътре в цитираната част, тогава се използва специфично цитиране на кавички в CSV - тяхното дублиране.

Ето описание на формата в ABNF нотация:

Файл = запис *(CRLF запис) заглавие = име *(име ЗАПАТАЯ) запис = поле *(поле ЗАПАТАЯ) име = поле поле = (екранирано / неекранирано) екранирано = DQUOTE *(TEXTDATA / COMMA / CR / LF / 2DQUOTE ) DQUOTE без екраниране = *TEXTDATA COMMA = %x2C DQUOTE = %x22 LF = %x0A CRLF = CR LF TEXTDATA = %x20-21 / %x23-2B / %x2D-7E

Също така, когато внедрявате формата, трябва да запомните, че тъй като няма указатели за броя и типа на колоните, тъй като няма изискване за поставяне на заглавка, има конвенции, които не трябва да забравяте:

  • стойност на низ от цифри, която не е затворена в кавички, може да бъде възприета от програмата като числова стойност, което може да доведе до загуба на информация, например водещи нули,
  • Броят на стойностите във всеки ред може да се различава и тази ситуация трябва да се третира правилно. В някои ситуации трябва да предупредите потребителя, в други трябва да създадете допълнителни колони и да ги попълните с празни стойности. Можете да решите, че броят на колоните е посочен от заглавката, или можете да ги добавите динамично, докато CSV се импортира,
  • Цитирането на цитати с наклонена черта не е стандартно; не трябва да го правите по този начин.
  • Тъй като няма писане на полета, няма и изисквания към тях. Разделителите за целите и дробните части са различни в различните страни и това води до факта, че един и същ CSV, генериран от приложението, се „разбира“ в един Excel, но не и в друг. Тъй като Microsoft Office се фокусира върху регионалните настройки на Windows и всичко може да се случи там. В Русия се посочва, че разделителят е запетая,
  • Ако отворите CSV не през менюто „Данни“, а директно, тогава Excel не задава никакви ненужни въпроси и прави това, което смята за правилно. Например, той разбира поле със стойност 1,24 по подразбиране като „24 януари“
  • Excel премахва водещите нули и преобразува типове дори когато стойността е в кавички. Не е нужно да правите това, това е грешка. Но за да заобиколите този проблем с Excel, можете да направите малък „хак“ - започнете стойността със знака „равно“ и след това поставете в кавички това, което трябва да бъде прехвърлено, без да променяте формата.
  • Excel има специален знак „равно“, който в CSV се счита за идентификатор на формула. Тоест, ако =2+3 е намерено в CSV, то ще събере две и три и ще запише резултата в клетката. Според стандарта той не трябва да прави това.

Пример за валиден CSV, който може да се използва за тестове:

Фамилия, собствено име, адрес, град/щат, пощенски код, само низ Иванов, Иван, Ленина 20, Москва, 08075, "1/3" Тайлър, Джон, 110 тераса, PA, 20121, "1.24" "Петров" "Kul" "", Petya, 120 Hambling St., NJ, 08075, "1.24" Smirnov, Vasya," 7452 Street "" Near the Square "" road", York, 91234, "3-01" , Misha, Ленинград , 00123, "03-01" "Джон ""Черната глава", Клод", Рок,"", Маями Бийч, 00111, "0000" Сергей,

Точно същият SCSV:

Фамилия; име; Адрес; град/щат; индекс; само низът Иванов;Иван; Ленина 20; Москва; 08075;"1/3" Тайлър; Йоан;110 тераса; PA; 20121;"1.24" "Петров" "Кул"""; Петя;ул.Хамблинг 120; NJ;08075;"1.24" Смирнов;Вася;"7452 ул. ""До площада"" път"; Йорк; 91234;"3-01" ;Миша;;Ленинград; 00123;"03-01" "Джон "Черната глава"; Клод";Рок;""; Маями Бийч;00111; "0000" Сергей;;

Първият файл, който наистина е РАЗДЕЛЕН СЪС ЗАПЕТАЯ, като е записан в .csv, изобщо не се възприема от Excel.

Вторият файл, който според SCSV логиката се приема от Excel и излиза със следното:

Excel грешки при импортиране:

  1. Разгледани пространства около разделителите
  2. Последната колона всъщност изобщо не беше разпозната, въпреки факта, че данните са в кавички. Изключение прави редът с „Петров” – там правилно е разпознат 1.24.
  3. Excel е пропуснал водещите нули в полето за индекс.
  4. в най-дясното поле на последния ред интервалите преди кавичките вече не означават специален знак

Ако използвате функцията за импортиране (Данни -> От файл) и извикате текст на всички полета по време на импортиране, ще видите следната картина:

Прехвърлянето на типове работи, но сега прекъсванията на редовете не се обработват нормално и проблемът с водещите нули, кавички и допълнителни интервали остава. И за потребителите е изключително неудобно да отварят CSV по този начин.

Има ефективен начин да принудим Excel да не преобразува типове, когато не ни трябва. Но това ще бъде CSV „специфичен за Excel“. Това се прави чрез поставяне на знак "=" преди кавичките навсякъде, където има потенциален проблем с типа. В същото време премахваме допълнителните интервали.

Фамилия;Собствено име;Адрес;Град/щат;пощенски код;само низът Ivanov;Ivan;Lenina 20;Moscow;="08075";="1/3" Tyler; John;110 terrace;PA;="20121";="1.24" "Петров "Кул"";Petya;120 Hambling St.;NJ;="08075";="1.24" Smirnov;Vasya;" 7452 ул. "" Близо до площада"" road";York;="91234";="3-01" ;Misha;;Leningrad;="00123";="03-01" "John "Black Head"" ;Claude";Rock ;"";Маями Бийч;="00111";="0000" Сергей;;

Ето какво се случва, ако отворим този файл в Excel:

Нека да обобщя.

За да генерира използваем CSV, на потребителя трябва да се даде възможност да направи следните настройки преди експортиране:

  1. изберете кодиране. Като цяло UTF-8, UTF-16, Windows-1251, KOI8-R са важни. Най-често няма други възможности. Един от тях трябва да е по подразбиране. Ако данните съдържат знаци, които нямат аналог в целевото кодиране, потребителят трябва да бъде предупреден, че данните ще бъдат повредени;
  2. изберете разделител между полетата. Опциите са раздел, запетая, точка и запетая. По подразбиране е точка и запетая. Не забравяйте, че ако в текста е въведен разделител, ще бъде много трудно да въведете табулатор там, той също е непечатаем знак;
  3. изберете разделител между редовете(CRLF 0×0D 0×0A или CR 0×0D);
  4. изберете десетичния разделител за числови данни(точка или запетая).
  5. изберете дали да се показва заглавната лента;
  6. изберете как да цитирате специални знаци(особено прекъсвания на редове и кавички). По принцип можете да се отклоните от стандарта и да ги квотирате като \n и \", но в този случай трябва да запомните да квотирате самите \n, ако се появят и не забравяйте да направите това опция при експортиране-импортиране. Но съвместимостта ще се обърка, защото всеки RFC стандартен анализатор ще приеме конструкцията...,"abc\"",... за грешка;
  7. абсолютно идеален - поставете отметка в квадратчето „за Excel“ и вземете предвид нестандартните функции, въведени от Microsoft. Например, заменете стойностите на цифровите полета „подобни на дата“ с конструкцията ="<значение поля>«.
  8. решите дали да оставите „опашка“ от празни разделители, ако се формира. Например от 20 полета само първото съдържа данни, а останалите са празни. В резултат на това можете или да поставите 19 разделителя след първия в реда, или да не ги поставите. За големи количества данни това може да спести милисекунди обработка и да намали размера на файла.

За да създадете добър и използваем CSV импортер, трябва да имате предвид следното:

  1. анализирането на файла трябва да се извършва токен по токенспоред граматиката по-горе или използвайте добре доказани готови библиотеки(Excel работи по различен начин, затова има проблем с импортирането);
  2. предоставят на потребителя възможност за избор на кодиране(топ 4 е достатъчно);
  3. предоставят на потребителя възможност за избор на разделител между полетата(достатъчни са запетая, раздел, точка и запетая);
  4. предоставят на потребителя възможност да избира разделител между редовете, но в допълнение към опциите CR и CRLF трябва да се предостави „CR или CRLF“. Това се дължи на факта, че например Excel, когато експортира таблица с нов ред в клетките, експортира тези нов ред като CR, а останалите редове се разделят с CRLF. Освен това, когато импортирате файл, няма значение дали е CR или CRLF;
  5. предоставят на потребителя възможност за избор на разделител между целите и дробните части(запетая или точка);
  6. вземете решение за метода на анализ- първо четем всичко в паметта, след това го обработваме или обработваме ред по ред. В първия случай може да е необходима повече памет, във втория случай грешка по средата ще причини само частично импортиране, което може да причини проблеми. Първият вариант е за предпочитане.

Рауф Алиев,
Заместник технически директор на Mail.Ru Group

Ако в таблицата, вместо необходимата информация, видите въпроси, йероглифи или други неразбираеми знаци, това означава, че трябва да разберете как да промените кодирането в Excel. Тази функция е налична в самия Microsoft Office. Но можете да се отървете от проблема, като използвате други методи.

Понякога получаваме странни йероглифи

Компютърът възприема всяка информация като набор от числа. Следователно всеки отпечатан знак има свой собствен код. Състои се от цифри и букви от латинската азбука. Символите и числата, съответстващи на тях, са кодирането.

Тя има няколко стандарта. Например Koi-8, Unicode, Windows-1251, ASCII. И ако се запише файл с текст, да речем, в Koi-8, в Excel той ще се покаже неправилно в Unicode. Тъй като в тези комплекти различни кодове са присвоени на едни и същи знаци.

Как да промените кодирането в програмата?

За да работите с таблица, която използва стандарт, който не е зададен по подразбиране в програмата, трябва да промените кодирането. Има няколко начина.

Използване на Notepad

Ако не можете да превърнете „лудите думи“ в нормален текст в Excel, отворете файла в Notepad++. Разпространява се безплатно. Конфигурирайте показването на символи там и след това продължете да работите в Excel.

Отворете файла в Notepad++

  1. Създайте резервно копие на документа. Или съхранявайте информацията от него в друга таблица.
  2. Стартирайте Notepad.
  3. Отидете на File - Open и посочете пътя до таблицата. В полето „Тип файл“ изберете „Всички типове“. Или посочете конкретен формат. Таблиците имат разширения .cvs, .xls, .xltm, xlam, .xlm. В Notepad текстът ще се показва без решетка. Не е необходимо да редактирате нищо в него.
  4. Използваният в момента стандарт ще бъде показан в лентата на състоянието долу вдясно.
  5. Отворете менюто Кодиране. Намира се в горната част на прозореца.
  6. Щракнете върху „Конвертиране в UTF-8“. Документът ще бъде конвертиран в необходимия формат. Excel приема този стандарт нормално и няма да го превърне в непоследователен поток от странни знаци.
  7. Сега изберете кои знаци да използвате. В същото меню за кодиране задръжте курсора на мишката върху падащия списък. Той е сам там.
  8. За руски език изберете кирилица - Windows-1251. Ако текстът е, да речем, арабски или гръцки, маркирайте съответния набор от знаци. Различните страни използват различни стандарти.
  9. Програмата ще ви помоли да потвърдите действието.
  10. Ако това не помогне, опитайте с други шрифтове на кирилица.
  11. Текстът също трябва да бъде записан във формат Excel.

Отворете файла в utf-8

Чрез интерфейса на програмата

Ето как да промените кодирането в Excel с помощта на вградените функции:

  1. Стартирайте програмата. Няма нужда да отваряте готовия документ. Нуждаем се от „чист“ лист.
  2. Отидете в раздела Данни в лентата с менюта.
  3. В панела Получаване на външни данни щракнете върху От текст.
  4. В списъка Тип файл (разположен до бутона Отказ) изберете Всички или Всеки. По този начин прозорецът ще показва формати на Excel, а не само .txt.
  5. Посочете пътя към таблицата.
  6. Ще се отвори съветникът за импортиране.
  7. В полето „Формат“ можете да изберете желания стандарт.
  8. Областта за визуализация показва как ще изглежда текстът с избрания набор от знаци. Можете да превъртите списъка и да потърсите коя настройка ви подхожда.
  9. Когато изберете желаната от вас опция, щракнете върху „Готово“.

Можете да използвате вградени функции

Как да запишете файл в определено кодиране?

Можете да се уверите, че файлът, който записвате, има специфично кодиране на Excel.

  1. Кликнете върху зеления бутон „Файл“ (в Office 2007 щракнете върху логото в горния ляв ъгъл).
  2. Опции - Разширени.
  3. Превъртете надолу до секцията Общи.
  4. Бутон Опции за уеб документ.
  5. Раздел Кодиране.
  6. В полето „Запазване на документа като“ въведете желаната стойност и щракнете върху „OK“.

Можете също да направите това:

  1. Кликнете върху „Файл“ или логото на офиса.
  2. Изберете „Запазване като...“.
  3. Кликнете върху „Услуга“. Ще има същия елемент „Опции за уеб документи“.

Как да добавя ново кодиране към офис програми?

Ако нито един от стандартите не е подходящ за вашия документ, добавете нови.

  1. Старт - Контролен панел.
  2. „Програми и функции“ или „Деинсталиране на програма“.
  3. Кликнете върху Office или Excel (в зависимост от това дали имате инсталиран целия пакет продукти на Microsoft Office или само Excel).
  4. Бутон "Промяна". Намира се над основната работна зона.
  5. Поставете отметка в „Добавяне или премахване“ и щракнете върху „Продължи“.
  6. Отворете раздела Общи инструменти - Многоезична поддръжка.
  7. Кликнете върху черната стрелка до желания стандарт и активирайте функцията „Изпълни на моя компютър“.
  8. Кликнете върху „Продължи“ и изчакайте процесът да завърши. Ще бъдат добавени нови комплекти.

В Excel можете да промените кодирането, ако знаците не се показват правилно. Тази функция е налична в инструментариума на програмата. Но понякога се използва софтуер на трети страни.