Tag: ruby on rails

Rails axlsxgem – 公式不逃避

有没有办法在呈现电子表格时忽略执行公式? 目前, sheet.add_row("=10+10")将评估20,即使我给:formula => :false或:type=> :string 唯一的方法是提供一个单引号,但这不是一个漂亮的方法。

我们可以将PDF,Excel,Word转换成Ruby on Rails的图像吗?

在我的项目中,需要将PDF,Excel,Word文档转换为图像。 我知道有imagemagick可以用于转换的PDF,但我不确定的Excel和PDF文件。 我见过的JODConverter将Excel,Word等转换为PDF,然后我必须将PDF转换为图像。 我不认为有一个gem或插件在Ruby绑定JODConverter。 在Ruby on Rails平台上有没有比这更好的解决scheme?

使用Rails Spreadsheet gem按横向打印Excel文件

我正在使用Spreadsheet gem在我的Rails应用程序中创buildExcel文件,然后将其打印出来。 它也在工作和打印,但是由于打印的数据很大,我需要将打印方向设置为横向。 我试过了 : sheet.pagesetup[:orientation] = :landscape 但是这给了我以下错误: undefined method `pagesetup' for #<Spreadsheet::Worksheet:0x007f5fb240fe70> 任何想法将不胜感激。

Rails中的Axlsx:渲染公式问题

当我将公式传递给add_row ,它总是以附加符号'开始返回。 结果公式不计算,但像在Excel文件中的文本呈现。 例如:方法sheet_quests.add_row ["=SUM(D7:D8)", "=D7-D8", "=D7"]返回 '=SUM(D7:D8) '=D7-D8 '=D7 我需要有计算公式的结果,而不是文本。 有任何想法吗?

使用RubyXL编写xlsx文件需要花费很长时间处理大量的单元

我在我的Rails应用程序中使用RubyXL gem生成4-5张工作簿。我们正在生成大量的单元格(超过5000(146 * 26))的Excel。 写入该文件需要20多分钟,并消耗大量内存。 其中一张表具有dynamic数据,其中有一些样式,如边界的背景颜色,字体颜色,粗体文本等。我​​正在使用此代码段。 workbook = RubyXL::Workbook.new() sheet = workbook.worksheets[0] cell = sheet.add_cell(row, col, text) cell.change_fill('#fff') cell.change_font_color('#000') cell.change_font_bold(true) 我试图通过删除一些边框样式来减less时间,从而减less了书面的时间,但仍然花费很长时间。 所以我删除了上面提到的其余样式。 之后,现在约1分钟左右。 你能否build议我将样式应用于单元格,以便花费更less的时间,而不会影响性能。 我会很乐意回答任何关于这个问题或者如果我错过了任何问题。

如果在excel中更改该行的任何单元格,如何在行中添加标识符?

有没有办法在Excel中标记具有标识符的行如果该行中的任何单元格更改而不使用VB脚本和使用公式 ? 这样,parsingExcel时,我只能得到那些被更改的行,然后我可以轻松地将这些更改的行与数据库中的值进行比较。 我需要这样做的原因是因为: 这是一个批量import,每张纸可以有5万到百万行 。 每行数据需要与3-4个数据库表进行比较 我不能将VB脚本添加到这些Excel表单,因为Excel表单是通过相同的应用程序导出的。 或者有没有其他办法可以有效地进行批量import? 我正在使用Roo gem并已经使用each_row_streaming方法。

在Rails 3.2中调用一个数组的ActiveRecord关联方法

目标:使用与我的HTML表中的相似的3个关联模型的信息生成Excel文档。 to_xls gem需要这个数组作为列表。 https://github.com/splendeo/to_xls 期望的输出: (working for both) (working for both) (working in HTML, not in Excel) territory.branch.name territory.zip territory.mailedcounts.maximum(:maileddate) My Branch 90210 2012-05-01 My Branch 90211 2012-05-03 My Branch 90212 分行有许多地区。 一个地区有许多Mailedcounts。 我可以通过show.html.erb的内置ActiveRecord方法在我的视图中调出正确的数据 <% for territory in @territories %> <tr> <td><%= territory.branch.name %></td> <td><%= territory.zip %></td> <td><%= territory.mailedcounts.maximum(:maileddate) %></td> </tr> <% end > 这是我已经正确导出到目前为止 […]

Axlsx根据行列号合并单元格,如Spreadsheet gem

我一直在使用电子表格gem写xls文件。 使用Spreadsheet gem,合并单元格可以像这样根据行号和列号dynamic地完成 merge_cells(start_row, start_col, end_row, end_col) 我的代码片段 excel_file = Spreadsheet::Workbook.new sheet1 = excel_file.create_worksheet :name => 'Example' . .#code blocks . . start_col = 4 end_col = 0 wk_array_size.each_with_index do |v,i| end_col = start_col+((v.to_i*2)-1) sheet1.merge_cells(0, start_col, 0, end_col) start_col = (end_col+3) end . .#code blocks . sheet1.insert_row(0,week_names) 其中week_array_size是一个数组,其中包含一个散列的大小,这个散列的大小是在这个散列的基础上合并的。 [11, 10, 3] 合并将在数组week_array_size上迭代dynamic完成 start_col = 4 […]

Ruby on Rails中的send_data与Spreadsheet插件的困难

我在控制器中有一个函数,它接受一些规范并生成一个报告。 在视图中调用此函数user_report: <%= submit_to_remote'submit-button',“Export Report to Excel”,:url => {:controller =>:reports,:action =>:user_report,:print_state =>'print'}%> 在reports_controller中,我使用Spreadsheet插件在user_report函数中生成一个Excel文件。 我想使用send_data将文件stream式传输给用户,而不是先在服务器上创build文件。 我所做的研究表明,使用StringIO是一种方式,如下所示。 令人沮丧的是,当我打电话给send_data时,什么都不会发生。 该插件似乎很好地创build一个文件并将其保存在服务器上,但是当我使用send_file时,什么也不做,表明问题不在于插件。 但是,我在做什么错了send_file / send_data? 函数本身如下所示: def user_report if request.post? unless params[:reports][:userid].blank? @userid=params[:reports][:userid] end if params[:print_state]=='print' report = Spreadsheet::Workbook.new info = report.create_worksheet :name => 'User Information' info.row(1).push 'User ID', @userid @outfile = "Report_for_#{@userid}.xls" require 'stringio' data = StringIO.new '' report.write […]

如何在电子表格中使用自定义颜色?

我需要使用自定义color和pattern_fg_color( HEX :0x00adb1, RGB :0,173,177)。 我从这里得到的build议,但它没有为我工作(我在另一个基于电子表格gem的库中使用它): Spreadsheet::Excel::Internals::SEDOC_ROLOC.update(enterprise: 0x00adb1) Spreadsheet::Column.singleton_class::COLORS << :enterprise testing例子: Spreadsheet::Format.new(pattern_fg_color: :enterprise) 我得到以下错误: 未知颜色“企业” 任何build议,将不胜感激。