I've got in a situation where I need to convert .xlsx or .xls formatted files into simple text file or .csv file.
I've found many options but doing this using PERL script is the best way I believe.I'm in AIX box.
Perl code should have 2 params while running. i.e
perl <excel2csv.pl> file.xlsx/xls output.csv
I've googled for the same, but didn't find anything concrete. I hope you guys wont disappoint me.
Thanks.
Try this...The target file name is same as the source file name but the extension will be CSV instead of XLS
Code:
#!/usr/bin/perl
use strict;
use Spreadsheet::ParseExcel;
my $sourcename = shift @ARGV or die "invocation: $0 <source file>\n";
my $source_excel = new Spreadsheet::ParseExcel;
my $source_book = $source_excel->Parse($sourcename) or die "Could not open source Excel file $sourcename: $!";
my $storage_book;
foreach my $source_sheet_number (0 .. $source_book->{SheetCount}-1)
{
my $source_sheet = $source_book->{Worksheet}[$source_sheet_number];
print "--------- SHEET:", $source_sheet->{Name}, "\n";
next unless defined $source_sheet->{MaxRow};
next unless $source_sheet->{MinRow} <= $source_sheet->{MaxRow};
next unless defined $source_sheet->{MaxCol};
next unless $source_sheet->{MinCol} <= $source_sheet->{MaxCol};
foreach my $row_index ($source_sheet->{MinRow} .. $source_sheet->{MaxRow})
{
foreach my $col_index ($source_sheet->{MinCol} .. $source_sheet->{MaxCol})
{
my $source_cell = $source_sheet->{Cells}[$row_index][$col_index];
if ($source_cell)
{
#print "( $row_index , $col_index ) =>", $source_cell->Value, "\t";
print $source_cell->Value, "\t";
}
}
print "\n";
}
}
print "done!\n";
Last edited by Franklin52; 04-25-2013 at 09:12 AM..
Reason: Please use code tags
Hi,
I have a file coming in xxx.txt(csv format) i do some work on it and i need to send out as a .xls format. Is there any way there is some code i can use in my script to convert this?
I'm struggling on this.
Thanks (11 Replies)
I think I know the answer to this :rolleyes: but thought I'd ask anyway. You never know.
Does anyone know of a program or utility that will run on any unix platform and convert Microsoft Excel files to ascii/plain text files that unix can understand ?
Thanks in advance.
Floyd (3 Replies)
Hi All,
I need a solution to convert my .xlsx file which has lot of worksheet, convert to separate csv file. Is there any shell script to do this? I can’t use excel macro to do this, since it was password locked.
I need the csv output as an input to my shell script. (1 Reply)
Hi Folks,
I have written a perl script that reads data from excel sheet(.xls) using Spreadsheet::ParseExcel module. But the problem is this module doesn't work for excel sheets with extension .xlsx.
I have gone through Spreadsheet::XLSX module with which we can read from .xlsx file directly.... (1 Reply)
Hi
I am trying one perl script to convert xlsx to xls file but could not able to get all the rows and columns in the xls file . This scriptFILE is basically to convert XLSX to CSV .. I am tweaking the script to convert XLSX to XLS file also
#######################FILE... (3 Replies)
HI,
I have multiple files per dept in folder
for eg : In a folder
File1_Dept100.xls
File2_Dept100.xls
File3_Dept100.xls
File1_Dept200.xls
File2_Dept200.xls
File3_Dept200.xls
Output should be :
Dept100.xls which has File1, File2, File3 in different tabs
Dept200.xls which has... (1 Reply)
Hi All,
Am needing advise on how to convert xls file to xlsx format on Solaris unix command line or scripting. I tried searching online but it looks like I need to either use Perl packages of Excel or Python packages or some other 3rd party tool. Problem is to install any of these will require... (2 Replies)
Discussion started by: arvindshukla81
2 Replies
LEARN ABOUT CENTOS
processcsv.py
PROCESSCSV.PY(1) Virtualization Support PROCESSCSV.PY(1)NAME
processcsv.py - process virt-top CSV files
SUMMARY
virt-top --csv data.csv
processcsv.py < data.csv
DESCRIPTION
virt-top is a top(1)-like utility for showing stats of virtualized domains.
processcsv.py is a simple Python script that post-processes the output of "virt-top --csv".
It is used like this:
virt-top --csv data.csv
processcsv.py < data.csv
The second command will overwrite the following files in the current directory:
"global.csv"
This contains the global (host) statistics columns from the CSV file.
"domainNN.csv" (multiple files)
For each libvirt domain ID NN, a file is created containing the per-domain statistics from the CSV file.
SEE ALSO virt-top(1)AUTHORS
Richard W.M. Jones <rjones @ redhat . com>
COPYRIGHT
(C) Copyright 2007-2012 Red Hat Inc., Richard W.M. Jones http://libvirt.org/
This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2 of the License, or (at your option) any later version.
This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation,
Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
virt-top-1.0.8 2013-12-29 PROCESSCSV.PY(1)