0

我正在使用 RubyXL gem 来读取 Excel 中生成的 xlsx 电子表格的单元格的背景颜色。如果文件在 LibreOffice 中打开或保存,这将正常工作。如果不这样做,填充颜色'ffffff'在第一次读取时都会被检测为白色 ( )。

我曾尝试将其File.Open用作事先复制文件保存的尝试,但没有成功。

cell && cell.fill_color我使用每行中每个单元格的循环访问背景填充颜色。

目前我已经尝试使用 RubyXL 的工作簿保存来复制保存,如下所示。

book   = RubyXL::Parser.parse(path)
book.save
 book   = RubyXL::Parser.parse(path)
sheet  = book.worksheets[0]
sd     = sheet.sheet_data
i = 0 ; j = 0;
sheet.each { |row|
            row && row.cells.each { |cell|
                    val = cell && cell.value
                    j +=1
                    bg = cell && cell.fill_color
                    puts val.to_s + "|---|" + bg.to_s 
             }
            j = 0 
            i+=1
            }

有没有办法以编程方式静默地重新保存文件(没有 GUI,没有对话框)?

4

1 回答 1

0

通过更强烈的 google-fu 以及来自另一个论坛的一些指针,我能够找到允许通过 libreoffice 进行文件转换的 soffice 函数组。

我运行了以下终端命令

soffice --headless --convert-to xlsx:"Calc MS Excel 2007 XML" file_path

这成功地解决了这个问题。

于 2017-11-24T15:35:25.447 回答