OpenDocument电子表格在Microsoft Excel中损坏

时间:2016-01-05 19:55:17

标签: ruby-on-rails excel ruby-on-rails-4 spreadsheet openoffice-calc

我正在使用gem写入OpenDocument电子表格(RSpreadsheet) 一旦写入数据,我就让用户下载它。电子表格在OpenOffice Calc和Numbers for Mac中运行良好。但是,当我尝试在Microsoft Excel中打开电子表格时,它告诉我电子表格已损坏。这只有在我向其写入数据时才会发生。我可以通过Ruby打开它并保存它,它会正常工作。一旦我向其写入数据,它就会变得腐败。

我尝试了另一个gem(Rubiod),并且能够在Excel中打开电子表格,但只有在Excel必须“恢复”电子表格之后。这样做它删除了公式和一些格式。虽然它确实保留了公式,但在OpenOffice和Numbers中更糟糕。

我需要用户能够下载他们选择的程序的电子表格。我不知道为什么Excel说这张纸是腐败的,并试图绕着它缠绕数小时。

电子表格随ODS扩展程序一起保存,并使用mime类型application/x-vnd.oasis.opendocument.spreadsheet和字符集utf-8

下载

示例:

original = Rspreadsheet.open 'blank.ods'
sheet = original.worksheets 1
sheet.A1 = 'FooBar' # Without this, Excel can open the spreadsheet fine
original.save 'new.ods'

respond_to do |format|
  format.all do
    send_data File.read('new.ods'), type: 'application/x-vnd.oasis.opendocument.spreadsheet; charset=utf-8; header=present' disposition: 'attachment; filename=new.ods'
  end
end

0 个答案:

没有答案