[英]How do I hide columns using rubyXL 3.4.0 or later?
如何使用 rubyXL 3.4.0 或更高版本隱藏列?
此處的示例 ( https://github.com/weshatheleopard/rubyXL/issues/145 ) 似乎已過時。 ( sheet.cols.find
現在返回一個Enumerator
,因此沒有hidden
方法。)
來自 rubyXL 問題 #145 的代碼:
# Assuming that the cells/rows/cols are respectively locked in the test file:
doc = RubyXL::Parser.parse('test.xlsx')
sheet = doc.worksheets[0]
sheet.sheet_data.rows[0].hidden
=> nil
sheet.sheet_data.rows[1].hidden
=> true
(c = sheet.cols.find(0)) && c.hidden
=> nil
(c = sheet.cols.find(1)) && c.hidden
=> true
xf = doc.workbook.cell_xfs[c.style_index || 0]
xf.apply_protection && xf.protection.locked
=> true
xf.apply_protection && xf.protection.hidden
=> true
您提供的示例是不隱藏列
但要獲得列的隱藏狀態
看起來 rubyXL 沒有隱藏列的功能
它的主要目的是解析xlsx文件
隱藏屬性只供閱讀,你不能用 rubyXL 改變它
我發現這個 gem, write_xlsx能夠隱藏列/行
但相比之下,它是用於創建 xlsx
他們在 github repo 中有關於如何隱藏的示例
我沒有找到任何其他可以輕松實現此目標的 gem(隱藏現有 xlsx 文件中的特定列)
也許你可以
我想到了:
以下代碼確實生成了一個隱藏了 B 列的新工作簿:
require "rubyXL"
require "rubyXL/convenience_methods"
workbook = RubyXL::Workbook.new
sheet = workbook.worksheets.first
sheet.add_cell(0,0, "Sam")
sheet.add_cell(0,1, "George")
sheet.add_cell(0,2, "John")
sheet.cols.get_range(1).hidden = true
workbook.write('hide_b.xlsx')
(我還在此處放置了此代碼的副本: https ://github.com/kurmasz/rubyXL-recipes)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.