在没有安装Excel的服务器上使用Ruby读写Excel文件

6

我需要在Linux服务器上读写(-> 转换)Excel文件,这台服务器当然没有安装Excel。 对于Python来说,有一个名为http://www.python-excel.org/的库。 Ruby中是否有类似的东西? 可能不需要处理最新的Office格式,只要旧的xls文件就可以了。


可能是Ruby: 解析Excel 95-2003文件?的重复问题。 - mikej
1个回答

11

我同意Gonzih的观点,并且我经常使用roo。它可以让我读取、写入和使用模板文件进行编写。

该项目在其网站上有相当完善的文档。

我通常会使用类似于以下的东西:

input = Excel.new(path)
output = Array.new
input.default_sheet = input.sheets[sheet]
start.upto(input.last_row) do |row|
  output << input.row(row)
end

p output
=> a nested array representing the spreadsheat.

p output[0]
=> [row1_column_a, row1_column_b...]

读取电子表格需要注意,如果你的文件是 .xlsx 格式,roo gem 要求你使用 Excelx.new 而不是 Excel.new

要写入电子表格,你可以:

book = Spreadsheet::Workbook.new
write_sheet = book.create_worksheet
row_num = 0
input.each do |row|
  write_sheet.row(row_num).replace row
  row_num +=1
end
book.write "/path/to/save/to.xls"

输入的结构与输出相同的数组


@Some_other_guy 他说:“使用 roo gem”。 - rm-rf
-rf:但是...我以为它不能写入Excel! - some_other_guy
Roo实现了所有电子表格类型的读取访问以及Google电子表格的读写访问。它可以处理* OpenOffice * Excel * Google电子表格 * Excelx * LibreOffice * CSV。 - some_other_guy
@Some_other_guy 也许在不同的版本中有所改变?我写这段示例代码时它是可以工作的,但那已经是三年前的事了。现在它不能工作吗? - rm-rf

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接