首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >文件格式转换

文件格式转换
EN

Stack Overflow用户
提问于 2014-07-17 17:58:36
回答 1查看 1.4K关注 0票数 0

我需要在unix中将我的excel文件(.xls)转换为制表符分隔的文本文件(.txt)。有人能帮我这个忙吗。

例如。如果我在服务器上载File.xls,它应该被转换为File.txt

感谢您的回复。

EN

回答 1

Stack Overflow用户

发布于 2014-07-18 20:04:51

这应该是您想要的结果:

代码语言:javascript
复制
#!/usr/bin/perl -w

   use strict;
   use Spreadsheet::ParseExcel;

   my $parser   = Spreadsheet::ParseExcel->new();
   my $workbook = $parser->parse($ARGV[0]);

   if ( !defined $workbook ) {
      die $parser->error(), ".\n";
   }

   for my $worksheet ( $workbook->worksheets() ) {

      my ( $row_min, $row_max ) = $worksheet->row_range();
      my ( $col_min, $col_max ) = $worksheet->col_range();

      for my $row ( $row_min .. $row_max ) {
         my $line="";
         my $comma="";
         for my $col ( $col_min .. $col_max ) {

            my $cell = $worksheet->get_cell( $row, $col );
            next unless $cell;

            $line .= $comma;

            $line .= $cell->unformatted();
            # Could be $cell->unformatted() or $cell->value()
            $comma=",";
         }
         print $line,"\n";
      }
   }

将文件另存为xls2csv,然后转到终端并使用以下命令使其可执行:

代码语言:javascript
复制
chmod +x xls2csv

然后,您可以使用以下命令运行它:

代码语言:javascript
复制
./xls2csv file.xls > file.csv

如果您不知道如何安装电子表格模块,您可以这样做:

代码语言:javascript
复制
sudo perl -MCPAN -e shell
cpan> install Spreadsheet::ParseExcel
cpan> q
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/24800406

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档