Excel 键入空格键或使用向上翻页和向下翻页按钮。通过键入q键可以解除man程序

Excel 键入空格键或使用向上翻页和向下翻页按钮。通过键入q键可以解除man程序,excel,scripting,csv,Excel,Scripting,Csv,我正在使用它,效果很好。我的解决方案: use Spreadsheet::BasicRead; my $xls = 'file.xls'; my $csv = 'file.csv'; my $ss = new Spreadsheet::BasicRead($xls) or die "Could not open '$xls': $!"; my $name = ''; my $row = 0; open(FILE, ">$csv") or die "Cou

我正在使用它,效果很好。

我的解决方案:

use Spreadsheet::BasicRead;

my $xls = 'file.xls';   
my $csv = 'file.csv';

   my $ss = new Spreadsheet::BasicRead($xls) or die "Could not open '$xls': $!";
   my $name = '';
   my $row = 0;

   open(FILE, ">$csv") or die "Could not open : $!\n";
      flock(FILE, 2) or die "Could not lock file\n"; 

        while (my $data = $ss->getNextRow()){
            $row++;
            $name = join(';',@$data);         
            print FILE $name."\n" if ($name ne "");
        }

      flock(FILE, 8); 
   close FILE; 

您可以使用用于数据库的Alacon命令行实用程序来实现这一点

它与Node.js一起工作,因此您需要安装并打包:

要将Excel文件转换为CVS(ot TSV),您可以输入:

> node alacon "SELECT * INTO CSV('mydata.csv', {headers:true}) FROM XLS('mydata.xls', {headers:true})"

Alacon支持其他类型的转换(CSV、TSV、TXT、XLSX、XLS)和SQL语言构造(请参见示例)。

这可能也是一种很好的方法。我很快就得到了Perl解决方案,所以我停止了这项工作。
新对象-comobject Excel。应用程序
看起来会启动Excel应用程序——你说过你不想这样做。@John,谢谢你指出这一点。我喜欢并使用Perl解决方案。这是一个很好的问题。我设法运行了代码,它返回了用逗号分隔的Excel条目,正如预期的那样。很抱歉这个愚蠢的问题,但是如何将最终信息保存在csv文件中呢?在我发布这个问题的那天,praavDa指出了Python xlrd,几天后作者John自己也添加了一篇文章。听起来很有趣,我将查看Ubuntu。在重复的问题中进一步探讨这一点:
        public static string ToCSV(this DataTable _dataTable)
        {
            StringBuilder csv = new StringBuilder();
            StringWriter sw = new StringWriter(csv);
            int icolcount = _dataTable.Columns.Count;
            for (int i = 0; i < icolcount; i++)
            {
                sw.Write(_dataTable.Columns[i]);
                if (i < icolcount - 1)
                {
                    sw.Write(",");
                }
            }
            sw.Write(sw.NewLine);
            foreach (DataRow drow in _dataTable.Rows)
            {
                for (int i = 0; i < icolcount; i++)
                {
                    if (!Convert.IsDBNull(drow[i]))
                    {
                        sw.Write(drow[i].ToString());
                    }
                    if (i < icolcount - 1)
                    {
                        sw.Write(",");
                    }
                }
                sw.Write(sw.NewLine);
            }
            sw.Close();
            return csv.ToString();
        }
FileInputStream fis = new FileInputStream(filename);
Workbook wb = new HSSFWorkbook(fis); 
Sheet sheet = wb.getSheetAt(0);
for (Row row : sheet) {
  for (Cell cell : row) {
    doSomething(cell.toString())
  }

}
FullName = objArgs(I)
FileName = Left(objArgs(I), InstrRev(objArgs(I), ".") )

Set objExcel = CreateObject("Excel.application")
set objExcelBook = objExcel.Workbooks.Open(FullName)

objExcel.application.visible=false
objExcel.application.displayalerts=false

objExcelBook.SaveAs FileName & "csv", 23

objExcel.Application.Quit
objExcel.Quit   

Set objExcel = Nothing
set objExcelBook = Nothing
ssconvert myfile.xls myfile.gnumeric
ssconvert --list-importers
ssconvert --list-exporters
man ssconvert
use Spreadsheet::BasicRead;

my $xls = 'file.xls';   
my $csv = 'file.csv';

   my $ss = new Spreadsheet::BasicRead($xls) or die "Could not open '$xls': $!";
   my $name = '';
   my $row = 0;

   open(FILE, ">$csv") or die "Could not open : $!\n";
      flock(FILE, 2) or die "Could not lock file\n"; 

        while (my $data = $ss->getNextRow()){
            $row++;
            $name = join(';',@$data);         
            print FILE $name."\n" if ($name ne "");
        }

      flock(FILE, 8); 
   close FILE; 
> npm install alasql
> node alacon "SELECT * INTO CSV('mydata.csv', {headers:true}) FROM XLS('mydata.xls', {headers:true})"