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" - 重命名工作簿的主要内容,如果未能解决你的问题,请参考以下文章

Rails宝石“Axlsx”/“Rails-Axlsx” - 添加图像

Bundler 找不到 gem "rails" 的兼容版本:用于狂欢

“RAILS_GEM_VERSION”设置到底有啥作用?

gem“websocket-rails”及其可扩展性

如何专门使用“Elasticsearch”gem 将 elasticsearch 与 rails 应用程序集成

Rails:Gemfile.lock 需要“找不到捆绑程序”(2.2.11)。 (Gem::GemNotFoundException)