Конвертирането на лист от Microsoft Excel (файл XLS) в файл, разделен с команди (CSV), е сравнително много лесен, докато използвате продукт на Office, но може да бъде досадна задача за програмистите да го направят в командния ред. Ситуацията може да възникне, когато имате XLS файл и трябва да попълните базата от данни след форматирането на данните. Конвертирането на XLS в CSV е идеалният начин тук, тъй като CSV е форматът, който лесно може да бъде манипулиран на всеки език, независимо дали става дума за Shell, Perl, Ruby, Python или Java. В този пост ще видим най-добрите начини за конвертиране на XLS файла в CSV и ще обсъдим и против използването на тези методи.

catdoc (в C)

Първият инструмент за команден ред, за който ще говорим, е catdoc. Инструментът е написан на C от VB Vagner.

1.1 Как да го инсталирате:

Изтеглете инструмента оттук. Отидете в директорията за изтегляния и я махнете. Можете да използвате следните команди (в случай че имате проблем):

 gunzip catdoc-0.94.2.tar.gz катран xvf catdoc-0.94.2.tar 

Сега имаме директория catdoc-0.94.2 . Влезте в тази директория и изпълнете следните команди, за да я инсталирате:

 ./configure make make make install 

Инсталацията е лесен процес и не би трябвало да имате проблем тук.

1.2 Как да го използвате:

Има няколко възможности за стартиране на командата. Ще кажа опциите, които работят най-добре за преобразуването в Microsoft Excel:

 xls2csv -x "Path_of_Your_XLS_File" -s cp1252 -d 8859-1> "Path_of_Your_CSV_File" 

Отбележете опцията " -s " и " -d " (означава източник и дестинация). Тези опции се използват, за да се определи кое кодиране на знаци се използва в изходния файл и каква би била кодирането на знака за целевия файл. Тук използвах cpl1252, което е кодиране на Microsoft знака и 8859-1, което се използва за кодиране на западноевропейски знаци. Можете да използвате другите опции, които са достъпни, като използвате командата за помощ.

 xls2csv --help 

1.3 За и против:

Плюсове : Директно монтиране напред

Недостатъци : Няма селективно преобразуване в сценарий с няколко листа, той покрива всички листове, присъстващи в xls файла (едно решение би било изрично да посочите долен колонтитул във всеки лист и след това да използвате опцията -b в командата), проблеми с малко европейски знаци, проблем с полетата за дата (полетата за дата са объркани големи пъти), бъркотията с кавички.

xls2csv (в Perl)

Вторият инструмент, за който ще говорим, е скриптът на Perl xls2csv, написан от Ken Prows в Perl.

2.1 Как да го инсталирате:

Изтеглете скрипта тук. Gunzip и го зарежете както в предишната секция и отидете в извлечената директория и използвайте следните команди, за да я инсталирате:

 perl Makefile.PL правят направете теста направете инсталирането 

Запомнете, че този скрипт на Perl използва няколко други модула на Perl:

 Локално :: Преобразуване на Unicode :: Карта на електронна таблица :: ParseExcel Text :: CSV_XS 

Докато инсталирате xls2csv, то ще даде грешка, че посочените Perl модули не са инсталирани. Той ще ви помоли да изтеглите модулите. Изтеглете и инсталирайте тези модули при поискване. Всички тези инсталации на модули изискват права на root. Ако нямате root достъп, трябва да следвате указанията, дадени тук, за да инсталирате модул Perl.

2.2 Как да го използвате:

Следната команда може да се използва за конвертиране на Microsoft Excel в csv:

 xls2csv -x "Path_of_Your_XLS_File" -b cp1252-w Име на работния файл -c "Path_of_Your_CSV_File" -a 8859-1 

Опциите x и c (означава xls и csv) се използват за определяне на входните и изходните файлове, където b и a (означава преди и след) се използват за определяне на съответното кодиране на символи. Използвахме същото кодиране на знаците, както в предишния инструмент.

2.3 Забрани и минуси:

Плюсове : Добър със западноевропейски знаци за преобразуване и полета за дата, поддържа селективно преобразуване на няколко листа,

Недостатъци : Няколко модула Perl трябва да бъдат инсталирани, първата клетка не трябва да бъде празна (в противен случай пропуска целия ред), messes with quotes

Съществуват и няколко други начина. Някои скриптове в Python и Java също могат да се използват, но те не са толкова добри, колкото тези две дискутирани тук. Надявам се статията да реши проблема ви. Въпросите и предложенията винаги са добре дошли. Наздраве :)