Rails Gem "Axlsx" - 重命名工作簿

Posted

技术标签:

【中文标题】Rails Gem "Axlsx" - 重命名工作簿【英文标题】:Rails Gem "Axlsx" - Rename Workbook 【发布时间】:2016-09-30 18:35:35 【问题描述】:

我的工作簿总是像我的模板“invoices_generate.xlsx”一样命名。 我怎样才能重命名这个文件?

模板“invoices_generate.xlsx.axlsx”:

wb = xlsx_package.workbook

    wb.add_worksheet(:name => "Beleg") do |sheet|  

    .
    .
    .

    sheet.column_widths 2 , 11, 11, 11, 11, 23, 3

    end

【问题讨论】:

【参考方案1】:

您是否也添加了 axlsx_rails gem?如果是这样:

wb = xlsx_package.workbook
wb.add_worksheet(name: "Beleg") do |sheet|
  sheet.column_widths 2 , 11, 11, 11, 11, 23, 3
end

有关详细信息,请参阅 https://github.com/straydogstudio/axlsx_rails#template,如果这不起作用,请尝试从呈现 xlsx 模板的控制器操作中设置文件名,如下所述:https://github.com/straydogstudio/axlsx_rails#file-name

【讨论】:

使用add_worksheet 下的名称仅命名工作表。所以是的,它必须在控制器中使用render :xlsx 语句来完成。没有这个,就不会有文件名http头,浏览器会根据URL猜测一个名字。 实际上这并不能解决原始问题,因为此答案会更改工作表的名称,而不是文件的名称【参考方案2】:

供将来参考:在控制器中,在生成工作簿的函数上

def index
  @users =  User.all

  render xlsx: 'export', filename: 'my_new_filename.xlsx' //Render with export and naming the file
  respond_to do |format|
    format.html
    format.xlsx
  end
end  

【讨论】:

以上是关于Rails Gem "Axlsx" - 重命名工作簿的主要内容,如果未能解决你的问题,请参考以下文章