Ruby Ruby 有那个操作 excel 的库支持在读取 excel 内容时获取单元格样式信息么?

2604249649 · 2023年08月02日 · 最后由 scriptforge88 回复于 2026年07月14日 · 604 次阅读

目前遇到一个功能:

  1. 模版导出:只有第一次导出是一个固定的空模版,之后的导出模版内容都是上一次导入的,文件导出格式是 xlsx,之后导入也是
  2. 模版导入:用户在导出的模版上做操作,可能会在工作页上已有的表格上加行或加表格,同时可能会给单元格样式信息

遇到的问题: 在使用Roo Gem 读取 excel 文件时,发现好像只能取到单元格的内容,但是单元格的样式信息好像没有提供相应的方法获取,项目中用到的和 Excel 相关的Gem有:axlsxroocreekspreadsheet,这些库中有读 excel 能力的库好像都没有对获取单元格样式的方法或者相关的说明,或者不支持对xlsx文件的处理

期望: 希望能有一个Ruby操作 Excel 库,能够像JavaPOI一样有提供类似于getCellStyle这样的方法

roo 没用过,rubyXL 可以

jicheng1014 回复

spreadsheet 好像处理不了 xlsx 格式

jiting 回复

rubyXL 确实可以

补充一个:rubyXL 可以读取 .xlsx 的单元格样式(roo / creek 只读值不读样式,spreadsheet 只支持老的 .xls)。

require "rubyXL"

book = RubyXL::Parser.parse("data.xlsx")
cell = book.worksheets[0][1][2]   # 第 2 行第 3 列(0-based)

cell.get_cell_fill_color              # 填充色
cell.get_cell_font.get_b              # 字体是否加粗
cell.get_cell_border(:bottom).get_style  # 边框样式

fill / font / border 都有对应的 getter,基本能覆盖"读内容的同时拿样式"的需求。缺点是只支持 .xlsx,老的 .xls 需要先转换格式。

需要 登录 后方可回复, 如果你还没有账号请 注册新账号