Das folgende Perl-Skript kann CSV-Dateien in XLS-Dateien konvertieren
Das Problem ist, dass ich auf dem Linux-Computer des Kunden viele Perl-Module installieren muss
Um dieses Perl-Skript auszuführen, kann ich es eigentlich nicht, weil der Linux-Computer ein Kundencomputer ist (Module dürfen nicht installiert werden).
Ich muss also eine andere Alternative für dieses Perl-Skript finden
Erster Kunde hat Linux Red-Hat-Maschine Version 5.X.
Und ich möchte einige bash / ksh / sh / awk- Skripte finden, die die Arbeit genauso erledigen können wie das Perl-Skript
Daher möchte ich eine andere Alternative finden, die CSV in XLS-Dateien konvertiert
Bitte beraten Sie, wie Sie dieses Skript finden können. oder andere Ratschläge zum Konvertieren von CSV in XLS auf einem Linux-Computer
#!/usr/bin/perl -w
###############################################################################
#
# Example of how to use the WriteExcel module
#
# Simple program to convert a CSV comma-separated value file to an Excel file.
# This is more or less an non-op since Excel can read CSV files.
# The program uses Text::CSV_XS to parse the CSV.
#
# Usage: csv2xls.pl file.csv newfile.xls
#
#
# NOTE: This is only a simple conversion utility for illustrative purposes.
# For converting a CSV or Tab separated or any other type of delimited
# text file to Excel I recommend the more rigorous csv2xls program that is
# part of H.Merijn Brand's Text::CSV_XS module distro.
#
# See the examples/csv2xls link here:
# L<http://search.cpan.org/~hmbrand/Text-CSV_XS/MANIFEST>
#
# reverse('©'), March 2001, John McNamara, [email protected]
#
use strict;
use Spreadsheet::WriteExcel;
use Text::CSV_XS;
# Check for valid number of arguments
if ( ( $#ARGV < 1 ) || ( $#ARGV > 2 ) ) {
die("Usage: csv2xls csvfile.txt newfile.xls\n");
}
# Open the Comma Separated Variable file
open( CSVFILE, $ARGV[0] ) or die "$ARGV[0]: $!";
# Create a new Excel workbook
my $workbook = Spreadsheet::WriteExcel->new( $ARGV[1] );
my $worksheet = $workbook->add_worksheet();
# Create a new CSV parsing object
my $csv = Text::CSV_XS->new;
# Row and column are zero indexed
my $row = 0;
while (<CSVFILE>) {
if ( $csv->parse($_) ) {
my @Fld = $csv->fields;
my $col = 0;
foreach my $token (@Fld) {
$worksheet->write( $row, $col, $token );
$col++;
}
$row++;
} else {
my $err = $csv->error_input;
print "Text::CSV_XS parse() failed on argument: ", $err, "\n";
}
}
Antworten:
Zum automatischen Konvertieren von CSV-Dateien in XLS / XLSX-Dateien können Sie auch ssconvert (im Lieferumfang von Gnumeric enthalten) oder unoconv (im Lieferumfang von LibreOffice enthalten) verwenden.
SSConvert Beispiel
Beim ersten
ssconvert
Aufruf wird eine MS Excel 2007/2010-Datei und beim zweiten eine Excel 2007-Datei der alten Schule erstellt.Sie können die Dateien überprüfen über
file
:Sie können alle unterstützten Ausgabedateiformate auflisten über:
Unoconv Beispiel
Dadurch wird example.xls erstellt, eine Excel 97/2000 / XP-Datei.
Über Datei prüfen:
Sie können alle unterstützten Dateiformate auflisten über:
quelle
soffice --convert-to xlsx:"Calc MS Excel 2007 XML" filename.csv --headless
ist auch sehr nützlich.