file conversion


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting file conversion
# 1  
Old 08-22-2011
file conversion

Hi,

I have an excel file in unix and I want a script which changes the excel file to .csv file i.e (comma separated value file).

Would be thankful to you if some one helps me with this.

Thanks in advance.
# 2  
Old 08-22-2011
using perl

Code:
sub xls2csv{  
my ($filename, $csvname, $page) = @_;  
my $xls = Spreadsheet::ParseExcel::Simple->read($filename) or die "Can't read $filename: $!";  
my $cnt = 0;  
for my $sheet ($xls->sheets) {  
next unless $cnt++ == $page;  
open(CSV, ">$csvname") or abnormal_exit($?, $!);  
while ($sheet->has_data) {  
my @row = $sheet->next_row;  
for (@row) { if (/[,"]/) { s/"/""/g; s/^/"/; s/$/"/; } }  
print CSV join("\t", @row), "\n";  
}  
close CSV;  
}

These 2 Users Gave Thanks to itkamaraj For This Post:
# 3  
Old 08-22-2011
Thanks for that code, I'm sure it'll be extremely useful. It has a minor syntax error though, a missing }. Expanding all your code to find which one was missing, I believe the needed } belongs here:

Code:
#!/usr/bin/perl

sub xls2csv
{
        my ($filename, $csvname, $page) = @_;
        my $xls = Spreadsheet::ParseExcel::Simple->read($filename) or
                die "Can't read $filename: $!";
        my $cnt = 0;

        for my $sheet ($xls->sheets)
        {
                next unless $cnt++ == $page;
                open(CSV, ">$csvname") or abnormal_exit($?, $!);
                while ($sheet->has_data)
                {
                        my @row = $sheet->next_row;
                        for (@row)
                        {
                                if (/[,"]/)
                                {
                                        s/"/""/g; s/^/"/; s/$/"/;
                                }
                        }
                }

                print CSV join("\t", @row), "\n";
        }
        close CSV;
}

# 4  
Old 08-22-2011
Based on the assumption that not everybody can know everything, and that this little routine looks quite useful, would someone show a complete example of its usage.
Say converting a spreadsheet called "annual_sales.xls" containing 12 sheets, one for each month, and output (1 or 12?) csv files
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Linux

File conversion and removing special characters from a file in Linux

I have a .CSV file when I check for the special characters in the file using the command cat -vet filename.csv, i get very lengthy lines with "^@", "^I^@" and "^@^M" characters in between each alphabet in all of the records. Using the code below file filename.csv I get the output as I have a... (2 Replies)
Discussion started by: dhruuv369
2 Replies

2. AIX

File enconding and conversion

Hi am not a specialist about file encoding. On an AIX 5.2.0.0, I need to check files encoding and convert somes of them to UTF-8. I've used the following command and i think it said to me that all files are encoded using ISO8859-1 %locale charmap ISO8859-1 I've also used iconv command... (2 Replies)
Discussion started by: Fundix
2 Replies

3. Shell Programming and Scripting

Conversion of spaces Text file into CSV format file

Input file (each line is separaed by spaces )given below: Name Domain Contact Phone Email Location ----------------------- ------------------------------------------------ ------- -----... (18 Replies)
Discussion started by: sreenath1037
18 Replies

4. Shell Programming and Scripting

Conversion of below Tabs Tex file into CSV format file : shell script needed

Request if some one could provide me shell script that converts the below "input file" to "CSV format file" given Name Domain Contact Phone Email Location ----------------------- ------------------------------------------------ ------- ----- ---------------------------------... (7 Replies)
Discussion started by: sreenath1037
7 Replies

5. Shell Programming and Scripting

shell or perl script needed for ldif file to text file conversion

This is the ldf file dn: sdcsmsisdn=1000000049,sdcsDatabase=subscriberCache,dc=example,dc=com objectClass: sdcsSubscriber objectClass: top postalCode: 29600 sdcsServiceLevel: 10 sdcsCustomerType: 14 givenName: Adelia sdcsBlackListAll: FALSE sdcsOwnerType: T-Mobile sn: Actionteam... (1 Reply)
Discussion started by: LinuxFriend
1 Replies

6. Shell Programming and Scripting

File conversion

Hi Everyone, Can someone plesae advise on converting the inputted file into required output? First field is L then amount will - symbol. Sample input file B|T|SASOFTB00016|20090330|20090330|15000|9089001 B|T|SABH00000012|20090330|20090330|7000|9089003... (4 Replies)
Discussion started by: gehlnar
4 Replies

7. Shell Programming and Scripting

File Conversion

Hi all, How can i convert a file from one encoding to another? Lets say I have a file which is of utf-8 encoding and I want to convert it to cp875. Can anyone tell me how can I achieve this in shell script? Thanks, Sridhar (2 Replies)
Discussion started by: sridhar_423
2 Replies

8. Programming

C File Permission Conversion

I'm new to C, and I'm attempting to write a script similar to the stat command for practice. I only had a problem converting st_mode to an octal permission format. I remembered I had littleutils installed which contains a script called filemode, so I checked the source and it yielded something like... (4 Replies)
Discussion started by: petebear
4 Replies

9. Solaris

COnversion utility xhtml file to Postscript file

Hi, Can any suggest me some utility to convert xhtml file to postscript file format? Also tell me from where to down load such utility.. With Regards, Dattatray (0 Replies)
Discussion started by: dattatray.b
0 Replies

10. UNIX for Dummies Questions & Answers

file conversion

How can I suppress the 0a (line feed) in a text file (HP UX) (1 Reply)
Discussion started by: hipo
1 Replies
Login or Register to Ask a Question