Tag: ruby on rails

Excel导出不起作用

我在我的应用程序中添加了一个CSV和Excel导出function,但下载文件后,它只显示这个#<Axlsx::Worksheet:0x007f5d23708dc0>而不是电子表格中所需的数据。 我也分享我用过的方法和gem。 对于这个导出,我在Module Export下创build了一个单独的控制器和一个单独的类 require 'csv' require 'axlsx' # extend ActiveSupport::Concern # include Rails.application.routes.url_helpers module Export class ParseError < ::StandardError; end class ExportError < ::StandardError; end class TimesheetExport attr_accessor :error def initialize(trackers, export_to='csv') @trackers = trackers @export_to = export_to rescue ActiveRecord::RecordNotFound end def process if !@trackers @error = "Not Found" return false else case @export_to […]

如何将数据转换为Excel文件

我正在使用CSV类将数据转换为基于http://railscasts.com/episodes/362-exporting-csv-and-excel的Excel文件。 在下载Excel文件时,它不会更新我使用filter在我的网页上看到的最新数据。 我的Excel文件包含首次加载页面时显示的数据。 我试图debugging该问题,并尝试像xlsx_writer其他gem,得到相同的结果: def commission_report today = Date.today if params[:from_date].present? from_date = params[:from_date] to_date = params[:to_date] elsif params[:filter] == 'monthly' to_date = today from_date = today – 30 else to_date = today from_date = today – 7 end @commissions_report = UserOrderHistory.select("user_order_histories.*,SUM(user_order_histories.revenue_sharing) as revenue_total, restaurants.restaurant_name, managers.username,revenue_sharings.revenue").joins("LEFT JOIN revenue_sharings ON revenue_sharings.restaurant_id = user_order_histories.restaurant_id").joins("LEFT JOIN restaurants ON […]

Railscasts#396不适用于导入Excel工作表

我使用Railscasts来创build上传CSV和Excel文件的function。 导入CSV文件运行良好,但是当我使用Ryan的代码导入使用Roo gem的Excel工作表时,会引发错误: InventoryItemsController中的TypeError#import“无法将nil转换为哈希” 这是控制器中的导入方法: def import InventoryItem.import(params[:file]) redirect_to inventory_items_path, notice: "Inventory Items imported successfully!" end 我在application.rb文件中require 'roo'以及require 'csv' 模型中的代码是: def self.import(file) spreadsheet = open_spreadsheet(file) header = spreadsheet.row(1) (2..spreadsheet.last_row).each do |i| row = Hash[[header, spreadsheet.row(i)].transpose] inventory_item = InventoryItem.find_by_inventory_id(row["inventory_id"]) || new inventory_item.attributes = row.to_hash #.slice(*accessible_attributes) inventory_item.save! end end def self.open_spreadsheet(file) binding.pry case File.extname(file.original_filename) when ".csv" then […]

如何在没有下载/使用googledoc / microsoft office文档的情况下查看rails4中的Excel表格

在我的rails-4应用程序中,我需要显示excel(xls,xlsx)文件内容而不使用外部服务。 如果公开文件,外部服务将可用。 没有下载,我需要打开Excel的附件。 有没有办法在rails中做到这一点。 请帮忙。 提前致谢。

Writeexcel(Rails)生成excel不能在Microsoft Office 2010中打开

我用writeexcel创build了一个excel文件。 它完全打开自由办公室和开放式办公室,但微软办公室说:“无法打开文件”。 其他人也面临类似的问题?

使用Excel数据库缓慢加载页面

我正在使用一个包含大约1600行和4列的Excel电子表格来填充数据库,以便在Ruby应用程序中显示。 这导致页面加载时间超过20秒。 我该如何改善performance? 从db \ seeds.rb: oo = Excelx.new("RatingsDB.xlsx") oo.default_sheet = oo.sheets.first 2.upto(oo.last_row) do |line| Rating.create(name: oo.cell(line,'B'), score: oo.cell(line,'C'), when_rated: oo.cell(line,'A'), comment: oo.cell(line,'D')) end 从app \ controllers \ ratings_controller.rb: def index @ratings_by_name = Rating.paginate(:order => 'name ASC', :page => params[:page], :per_page =>10, :conditions => ['name like ?', "%#{params[:search]}%"]) @ratings_by_score = Rating.paginate(:order => 'score DESC', :page […]

Rails CSVfile upload字符编码问题

我知道有很多关于这方面的线索,但没有一个解决schemebuild议似乎不适合我的原因… 我在用: Ruby 1.9.2 Rails 2.3.8 我的用户在MS Excel中创buildCSV文件,然后需要将这些file upload到Web应用程序。 我的Web应用程序和数据库后端使用UTF-8,并且所有特殊字符(例如英镑符号)在上载时被损坏。 我正在阅读这样的文件: @file = params[:import_file][:uploaded_data] 然后使用以下命令获取文件的编码: source_encoding = "UTF-8" if @file.external_encoding source_encoding = @file.external_encoding.name end 对于我的testing文件,源编码值是ASCII-8BIT。 然后我试着做: @file.each {|line| print "#{line.force_encoding(source_encoding).encode!("UTF-8") }\n" } 以查看是否所有的文本都显示正常。 但是,这给了我这样的错误: 从ASCII-8BIT到UTF-8的“\ xA3” 如果我正在尝试阅读CSV: dataArray = CSV.read(@file, encoding: source_encoding) 这次没有错误,但是所有的特殊字符都是一样的? 字符。 任何指针,我可能会出错或正在导入用MS Excel创作的CSV文件只是一个不可能的任务? 问候, 奥利

上传/parsingRails应用程序中的Excel文档

我正在创build一个应用程序,该应用程序可以将单个条目添加到数据库模型,也可以从Excel文档中上载多个条目。 我正在上传轨道指南,并希望有一种方法来利用RubyXL的gem上传Excel文档。 以下是相关的文档: revenue_models / upload.html.erb You are in the Upload view… <%= form_for(@uploaded_doc, :url => {:action => parse_upload_revenue_models_path}, :html => {:method => "put"}) do |f| %> <%= f.file_field(:workbook) %> <%= f.submit("Upload File") %> <% end %> 的routes.rb Dataway::Application.routes.draw do devise_for :users resources :revenue_models do get 'upload', :on => :collection end match 'revenue_models/upload' => 'revenue_models#parse_upload', […]

带有write_xlsx重音的string不能用于ruby 2

我正在尝试使用write_xlsx gem创build一个包含法语数据的Excel文档。 我无法弄清楚如何configuration电子表格以显示包含重音符号的string (通常以UTF-8格式)。 目前,如果我在某些单元格中插入带有重音符号的string,则会使整个文档(Excel文件为空)崩溃。 我注意到,WriteXLSX支持Unicode,但我找不到如何启用它。 我知道这个gem不是很受欢迎,但它有我喜欢的优点。 谁能帮我? 编辑:重要信息:问题只出现在ruby2。

为什么我不能生成大的XLS(> 1000行)?

我search更快的XLS生成,我发现这个Railscast 。 我创build了10000个产品,并在模型中添加了更多的字段。 在XLS模板中,我输出了超过20个字段。 1000个产品被导出,但是当我尝试增加这个数字(为了testing性能)LibreOffice无法打开它。 还尝试将其上传到GoogleDrive并打开 – 也失败。 也许在我的模板有什么错误? <?xml version="1.0"?> <Workbook xmlns="urn:schemas-microsoft-com:office:spreadsheet" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:x="urn:schemas-microsoft-com:office:excel" xmlns:ss="urn:schemas-microsoft-com:office:spreadsheet" xmlns:html="http://www.w3.org/TR/REC-html40"> <Worksheet ss:Name="Sheet1"> <Table> <Row> <Cell><Data ss:Type="String">ID</Data></Cell> …20 headers… </Row> <% @products.each do |product| %> <Row> <Cell><Data ss:Type="Number"><%= product.id %></Data></Cell> …20 fields … </Row> <% end %> </Table> </Worksheet> </Workbook>