首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Ruby: axlsx :如何对选定的单元格进行粗体和更改BG颜色?

Ruby: axlsx :如何对选定的单元格进行粗体和更改BG颜色?
EN

Stack Overflow用户
提问于 2018-07-01 11:55:03
回答 1查看 1.6K关注 0票数 1

我正在使用axlsx红宝石创建一个Excel文件,我不知道如何只对选定的单元格应用粗体和背景样式(这里是状态单元格)。

我研究了一些方法,比如col_style、row_style和add_conditional_formatting,但是无法准确地解决,如何在我的代码中使用它,或者在这里它是否对我的需求有任何帮助。

目前的数据结构:

代码语言:javascript
复制
work = [ {:state=>"Texas", :details=>{}}
{:city=>"LasVegas", :details=>{"Rob"=>"Doctor", "Dino"=>"Artist"}}
{:city=>"El paso", :details=>{"Jer"=>"Journalist", "Milo"=>"Vet"}}

{:state=>"Florida", :details=>{}}
{:city=>"Miami", :details=>{"Jake"=>"Army", "Steve"=>"Retired"}}
{:city=>"Tampa", :details=>{"Cohen"=>"Teacher", "Mike"=>""}} ]

我的代码片段:

只有Excel部件

代码语言:javascript
复制
require 'axlsx'
p = Axlsx::Package.new

p.workbook.add_worksheet(:name => "Data") do |sheet|
    style1 = sheet.styles.add_style(:bg_color => "EF0920", :fg_color => "FFFFFF", b:true)
    style2 = sheet.styles.add_style(:bg_color => "00FF00", :fg_color => "FFFFFF", b:true)
    sheet.add_row ["State", "City", "Name", "Profession"], :style => style1
    work.each do |val|
      sheet.add_row [ val[:state], val[:city] ]
      val[:details].each do |k, v|
        sheet << ["", "",  k, v]        
      end 
     end
    sheet.add_row
end

p.serialize 'Data.xlsx
  1. 我尝试使用state在每个sheet.add_row之间添加一个空行,但它不起作用。(可阅性)
  2. 想要用粗体显示并只将gree的背景应用于状态单元格
  3. 最后,格式不匹配。

我希望我已经清楚地表达了我的问题,并提前感谢你的帮助

电流格式

预期格式

EN

回答 1

Stack Overflow用户

发布于 2018-07-01 23:04:54

样式方法为每个单元格接受一个数组,因此,如果您执行以下操作,将有一个粗体的"State“字段,行中的其他单元格缺少样式,除非特别添加:

代码语言:javascript
复制
embolden_style = style.add_style(b: true,bg_color: '78F2FF')
sheet.add_row ["State", "City", "Name", "Profession"], style: [embolden_style, nil, nil, nil]
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51123055

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档