Skrip Perl berikut dapat mengonversi file CSV ke file XLS
masalahnya adalah bahwa saya perlu menginstal pada mesin Linux pelanggan banyak modul Perl
untuk menjalankan skrip Perl ini, dan sebenarnya saya tidak bisa karena mesin Linux adalah mesin pelanggan (tidak memungkinkan untuk menginstal modul)
Jadi saya perlu mencari beberapa alternatif lain untuk skrip Perl ini
Pelanggan pertama memiliki Linux red-hat machine versi 5.X
Dan saya ingin menemukan beberapa skrip bash / ksh / sh / awk yang dapat melakukan pekerjaan sama seperti skrip perl
jadi saya ingin mencari alternatif lain yang mengkonversi file CSV ke XLS
Mohon saran bagaimana menemukan skrip ini? atau saran lain untuk mengonversi CSV ke XLS di mesin Linux
#!/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";
}
}
Jawaban:
Untuk mengonversi file CSV secara otomatis ke file XLS / XLSX Anda juga dapat menggunakan ssconvert (yang dilengkapi dengan Gnumeric) atau unoconv (yang menggunakan LibreOffice).
Contoh SSConvert
Di mana
ssconvert
panggilan pertama membuat file MS Excel 2007/2010 dan yang kedua sekolah Excel 2007 yang lama.Anda dapat memeriksa file melalui
file
:Anda dapat mendaftar semua format file output yang didukung melalui:
Contoh Unoconv
yang menciptakan example.xls, yang merupakan file Excel 97/2000 / XP.
Periksa melalui file:
Anda dapat membuat daftar semua format file yang didukung melalui:
sumber
soffice --convert-to xlsx:"Calc MS Excel 2007 XML" filename.csv --headless
cukup berguna juga.