以下Perl脚本可以将CSV文件转换为XLS文件
问题是我需要在客户Linux机器上安装许多Perl模块
为了运行此Perl脚本,实际上我不能,因为Linux机器是客户机器(不允许安装模块)
所以我需要为这个Perl脚本找到其他选择
第一位客户拥有Linux红帽机器版本5.X
而且我想找到一些bash / ksh / sh / awk脚本,它们可以完成与perl脚本相同的工作
所以我想找到其他将CSV转换为XLS文件的替代方法
请咨询如何找到该脚本?或其他建议在Linux计算机上将CSV转换为XLS
#!/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, jmcnamara@cpan.org
#
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";
}
}
4
我很想给出这个答案。作弊:将file.csv重命名为file.xls。excel打开它,您永远不会注意到差异。
—
Ramesh 2014年
是的,但是没有来自stackoverflow的答案,所以也许在这里我会得到很好的答案-:)
—
maihabunash 2014年
@maihabunash,您应该删除堆栈溢出或此处发布的问题。如果您将其张贴在2个地方,它将被关闭。
—
Ramesh
CSV文件(通常)很难解析,您具有包含换行符,引号和逗号的单元格值。XLS文件(较旧的文件,而不是较新的XLSM xml文件)是二进制文件,很难生成。
—
Anthon 2014年