Konvertering af Microsoft Excel-ark (XLS-fil) til en kommasepareret fil (CSV) er relativt nemt, når du bruger et Office-produkt, men det kan være en kedelig opgave for programmører at gøre det på kommandolinjen. Situationen kan komme, når du har en XLS-fil, og du skal udfylde databasen fra den efter formatering af dataene. Konvertering af XLS til CSV er den ideelle måde her, da CSV er det format, der nemt kan manipuleres på et hvilket som helst sprog, det være sig Shell, Perl, Ruby, Python eller Java. I dette indlæg vil vi se de bedste måder at konvertere XLS-filen til CSV, og vi vil også diskutere for- og ulemper ved at bruge disse metoder.

catdoc (i C)

Det første kommandolinjeværktøj vi skal tale om er catdoc. Værktøjet er skrevet i C af VB Vagner.

1.1 Sådan installeres det:

Download værktøjet herfra. Gå til din download directory og untar det. Du kan bruge følgende kommandoer (hvis du står over for et problem):

 gunzip catdoc-0.94.2.tar.gz tjære xvf catdoc-0.94.2.tar 

Nu har vi en catdoc-0.94.2 bibliotek. Gå ind i denne mappe og kør følgende kommandoer for at installere det:

 ./configure make make install 

Installationen er en nem proces, og du bør ikke stå over for noget problem her.

1.2 Sådan bruges det:

Der er flere muligheder for at køre kommandoen. Jeg vil fortælle de muligheder, der fungerer bedst til Microsoft Excel-konvertering:

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

Bemærk indstillingen " -s " og " -d " (står for kilde og destination). Disse indstillinger bruges til at angive, hvilken tegnkodning der anvendes i kildefilen og hvad ville være tegnkodningen for destinationsfilen. Her har jeg brugt cpl1252, som er Microsoft tegnkodning og 8859-1, som bruges til Vesteuropæisk tegnkodning. Du kan bruge, hvilke andre muligheder der er tilgængelige ved hjælp af hjælpekommandoen.

 xls2csv --help 

1.3 Fordele og ulemper:

Fordele : Straight forward installation

Ulemper : Ingen selektiv konvertering i flere arkscenarier, det dækker alle arkene i xls-filen (en løsning ville være at eksplicit angive en footer i hvert ark og derefter bruge option -b i kommandoen), problemer med få europæiske tegn, problem med datofelter (datofelterne er rodet op store gange), messer med citater.

xls2csv (i Perl)

Det andet redskab vi skal tale om er et Perl-script xls2csv skrevet af Ken Prows i Perl.

2.1 Sådan installeres det:

Download scriptet her. Gunzip og tjære det som vi gjorde i foregående afsnit og gå det uddragne bibliotek og brug følgende kommandoer til at installere det:

 perl Makefile.PL gøre make test make install 

Husk dette Perl script bruger en række andre Perl moduler:

 Lokal :: Recode Unicode :: Kort Regneark :: ParseExcel Tekst :: CSV_XS 

Mens du installerer xls2csv, vil det give fejl, at de nævnte perl-moduler ikke er installeret. Det vil bede dig om at downloade modulerne. Download og installer disse moduler, når du bliver spurgt. Alle disse modulinstallationer kræver root-rettigheder. Hvis du ikke har rootadgang, skal du følge instruktionerne her for at installere et Perl-modul.

2.2 Sådan bruger du det:

Følgende kommando kan bruges til at konvertere Microsoft Excel til csv:

 xls2csv -x "Path_of_Your_XLS_File" -b cp1252 -w Arbejdsarknavn -c "Path_of_Your_CSV_File" -a 8859-1 

Alternativ x og c (betyder xls og csv) bruges til at angive input- og outputfiler, hvor b og a (betyder før og efter) bruges til at angive den respektive tegnkodning. Vi har samme tegnkodning som i tidligere værktøj.

2.3 Fordele og ulemper:

Fordele : Godt med vesteuropæiske tegnkonvertering og datofelter, understøtter selektiv multiladskonvertering,

Ulemper : Flere Perl moduler skal installeres, første celle bør ikke være tom (ellers springer det hele rækken), messer med citater

Der er også flere andre måder. Nogle scripts i Python og Java er også tilgængelige til brug, men de er ikke så gode som disse to diskuteres her. Jeg håber artiklen løser dit problem. Spørgsmål og forslag er altid velkomne. Skål :)