1
我在Rails應用程序中使用了電子表格寶石,並希望能夠下載由電子表格生成的Excel文件。我在我的控制了以下行動:使用電子表格下載Excel文件在rails應用程序中創建寶石
def download_xls
send_data spreadsheet_report("Test", Prospects::INQUIRY_COLUMN_ORDER),
:filename => "Test.xls",
:type => "application/vnd.ms-excel"
end
的spreadsheet_report
方法是在同一個控制器定義:
def spreadsheet_report(excel_filename, inquiry_column_order)
book = Spreadsheet::Workbook.new
sheet1 = book.create_worksheet :name => Array1[0]
sheet2 = book.create_worksheet :name => Array2[1]
rownum = 0
for column in inquiry_column_order
sheet1.row(rownum).push column
end
book.write "#{excel_filename}.xls"
end
的「TEST.XLS」文件下載罰款,但似乎失去了必要的格式化,僅創建一個工作表,並且只有第一行上的值可以進行拉伸,例如「@ biff_version = 1536」。我使用LibreOffice Calc打開它,所以我不知道是否會導致一些問題,但我能夠生成該文件並使用LibreOffice Calc在send_data上下文之外打開它。我錯過了什麼?
順便說一句,Ruby中'for'循環是皺眉。只要有可能,請使用['each'](http://ruby-doc.org/core-1.9.3/Array.html#method-i-each)。 – 2012-03-08 01:52:24