我正在使用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,没有对话框)?
答案 0 :(得分:0)
通过更强烈的google-fu以及来自另一个论坛的一些指示,我能够找到允许通过libreoffice进行文件转换的soffice功能组。
我运行了以下终端命令
soffice --headless --convert-to xlsx:"Calc MS Excel 2007 XML" file_path
成功地解决了这个问题。