Rails 4,将“ \ n”替换为“
” 用于Excel中的XML电子表格

这么牛

我正在编写一个将某些数据导出到特定格式的Excel文档中的应用程序。我正在使用此文档构建XML电子表格文件(http://msdn.microsoft.com/zh-cn/library/aa140066(v=office.10).aspx#odc_xmlss_x:pagesetup

到目前为止,一切正常。但是要使其正常工作,我必须在多个字段中使用“ .html_safe”,在这种情况下这很危险,因为要导出的某些字段包含用户输入的数据。

基本上是在您使用的excel单元中获得新行,"
"而不是通常的\ n

我目前在erb中使用它:

(为清楚起见,于2014年8月8日编辑)

<% @tickets.each do |t| %>
  <Row>
    <Cell ss:StyleID="borders"><Data ss:Type='String'>
      <%=t.business_impact.gsub("\n","&#10;").html_safe %>
    </Data></Cell>
  </Row>
<% end %> 

但是有没有更好的方法来做到这一点,而不会“ html_safe”整个字符串?

Jaugar Chang

我强烈建议您使用ERB生成XML格式的Excel文档。

首先,您应该创建一个excel模板。您可以创建仅1行3列的Excel文档,并使用xml格式保存,然后将文件名更改为xxx.erb。

使用模型实例变量更改erb文件。我可以在这里给我我的样品:

 <Worksheet ss:Name="sheet1">
  <Table>
   <Column ss:Width="30" />
   <Column ss:Width="200" />
   <Column ss:Width="300" />
   <Column ss:Width="400" />
   <Row>
        <Cell><Data ss:Type="String">C1</Data></Cell>
        <Cell><Data ss:Type="String">C2</Data></Cell>
        <Cell><Data ss:Type="String">C3</Data></Cell>
   </Row>
   <% @yourmodels.each do |ds| %>
   <Row>
    <Cell><Data ss:Type="String"><![CDATA[<%safe_concat ds.c1 %>]]></Data></Cell>
    <Cell><Data ss:Type="String"><![CDATA[<%safe_concat ds.c2 %>]]></Data></Cell>
    <Cell><Data ss:Type="String"><![CDATA[<%safe_concat ds.c3 %>]]></Data></Cell>
   </Row>
   <% end %>
  </Table>
 </Worksheet> 

更新:
参考另一个问题excel-xml-line-breaks-within-cell-from-php-dom,以及文章safebuffers和rails 3.0
将代码更新<Cell><Data ss:Type="String"><%= ds.c1 %></Data></Cell>
<Cell><Data ss:Type="String"><![CDATA[<%safe_concat ds.c1 %>]]></Data></Cell>

这些代码只是我的示例的一部分,就像其他html模板一样。不必担心数据中的新行,不需要html_save,它会很好地工作。

并且在您的控制器中,您应该添加响应的xls或xml格式。

respond_to do |format|
  format.html # index.html.erb
  format.xls # index.xls.erb
  format.xml # index.xml.erb
end

此外,如果要在本地创建文件,而不是从浏览器返回文件。您可以使用ERB类方法,如下所示:

        @yourmodels = ...
        f = File.new( 'youmodels_out.xml', "w") 
        f_template = File.open( 'template_file_name.erb' )
        erb = ERB.new( f_template.read ) 
        f.print erb.result( binding )                
        f_template.close
        f.close  

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Rails 4,将“ \ n”替换为“&#10;” 用于Excel中的XML电子表格

来自分类Dev

将Excel电子表格转换为JSON

来自分类Dev

Excel将电子表格转换为html

来自分类Dev

如何将HTML表格转换为Excel电子表格

来自分类Dev

如何在Rails 4中使用电子表格gem?

来自分类Dev

如何在 Linux 中也通过更新链接将 Excel 电子表格 2007 转换为 pdf

来自分类Dev

将Excel中的#N / A值更改为电子表格中的最后一个非错误值

来自分类Dev

将电子表格的行转换为单独的XML文件

来自分类Dev

如何将Microsoft Excel Online电子表格链接转换为CSV?

来自分类Dev

如何将扫描的手写表转换为Excel电子表格?

来自分类Dev

我的程序将电子表格转换为Excel文件。但这仅适用于一位用户

来自分类Dev

Openpyxl-将图像转换为Excel电子表格后出现错误,styles.xml可能存在问题

来自分类Dev

如何将已经上传的Excel文件转换为Google的电子表格格式?

来自分类Dev

使用AXLSX gem将几种样式应用于Excel电子表格中的单元格

来自分类Dev

使用AXLSX gem将几种样式应用于Excel电子表格中的单元格

来自分类Dev

Google脚本+电子表格+打开时将整个表格转换为大写

来自分类Dev

将表格从访问权限复制到Excel电子表格中

来自分类Dev

用于替换许多其他电子表格中的内容和公式的脚本

来自分类Dev

将电子表格编号转换为列字母

来自分类常见问题

如何快速轻松地将电子表格数据转换为JSON?

来自分类Dev

如何将电子表格的“以字母命名”列坐标转换为整数?

来自分类Dev

使用GAS将Google电子表格转换为XLSX或ODS

来自分类Dev

将.json数据转换为电子表格的MATRIX

来自分类Dev

根据列表将.xls / .xlsx电子表格转换为多个.csv

来自分类Dev

使用GAS将Google电子表格转换为XLSX或ODS

来自分类Dev

如何将电子表格单元格转换为时间单位?

来自分类Dev

将.XLSX电子表格转换为CSV的代码无法正常工作

来自分类Dev

是否有将谷歌文档转换为谷歌电子表格的功能?

来自分类Dev

自动将XML提取到特定的Google电子表格中

Related 相关文章

  1. 1

    Rails 4,将“ \ n”替换为“&#10;” 用于Excel中的XML电子表格

  2. 2

    将Excel电子表格转换为JSON

  3. 3

    Excel将电子表格转换为html

  4. 4

    如何将HTML表格转换为Excel电子表格

  5. 5

    如何在Rails 4中使用电子表格gem?

  6. 6

    如何在 Linux 中也通过更新链接将 Excel 电子表格 2007 转换为 pdf

  7. 7

    将Excel中的#N / A值更改为电子表格中的最后一个非错误值

  8. 8

    将电子表格的行转换为单独的XML文件

  9. 9

    如何将Microsoft Excel Online电子表格链接转换为CSV?

  10. 10

    如何将扫描的手写表转换为Excel电子表格?

  11. 11

    我的程序将电子表格转换为Excel文件。但这仅适用于一位用户

  12. 12

    Openpyxl-将图像转换为Excel电子表格后出现错误,styles.xml可能存在问题

  13. 13

    如何将已经上传的Excel文件转换为Google的电子表格格式?

  14. 14

    使用AXLSX gem将几种样式应用于Excel电子表格中的单元格

  15. 15

    使用AXLSX gem将几种样式应用于Excel电子表格中的单元格

  16. 16

    Google脚本+电子表格+打开时将整个表格转换为大写

  17. 17

    将表格从访问权限复制到Excel电子表格中

  18. 18

    用于替换许多其他电子表格中的内容和公式的脚本

  19. 19

    将电子表格编号转换为列字母

  20. 20

    如何快速轻松地将电子表格数据转换为JSON?

  21. 21

    如何将电子表格的“以字母命名”列坐标转换为整数?

  22. 22

    使用GAS将Google电子表格转换为XLSX或ODS

  23. 23

    将.json数据转换为电子表格的MATRIX

  24. 24

    根据列表将.xls / .xlsx电子表格转换为多个.csv

  25. 25

    使用GAS将Google电子表格转换为XLSX或ODS

  26. 26

    如何将电子表格单元格转换为时间单位?

  27. 27

    将.XLSX电子表格转换为CSV的代码无法正常工作

  28. 28

    是否有将谷歌文档转换为谷歌电子表格的功能?

  29. 29

    自动将XML提取到特定的Google电子表格中

热门标签

归档