如何将输入文本结果导出到Rails中的XLS文件?

问题描述:

我用JavaScript写了一个计算脚本,我想将结果导出到XLS文件。如何将输入文本结果导出到Rails中的XLS文件?

这是我的代码:

****************THIS IS MY SCRIPT******** 
**********PROJECT/PUBLIC/JAVASCRIPT/calculator.js 

    $(document).ready(function() { 
    $(".conversion input").keyup(multInputs); 

    function multInputs() { 
     var mult = 0; 
     // for each row: 
     $("tr.conversion").each(function() { 
      // get the values from this row: 
      var $val1 = $('.val1', this).val(); 
      var $val2 = $('.val2', this).val(); 
      var $val3 = $('.val3', this).val(); 
      var $subtotal = ($val1 * 1) * ($val2 * 1) 
      $('.soles',this).text($subtotal); 
      mult = ($subtotal*1) +($val3 * 1); 

     }); 

     $("#total").text(mult); 
    } 
}); 

这是我的看法:

<div> 
    <table border="1" class="calculator"> 
    <tr> 
     <th>COSTO DEL DOLAR</th> 
     <th>SUMA DE SOLES</th> 
     <th>SUMA DE SOLES A DOLARES</th> 
     <th>SUMA DE DOLARES</th> 
    </tr> 
    <tr class="conversion"> 
     <td> <input id="cambio" name="cambio" class="val1" maxlength ="5"/></td> 
     <td>S/<input id="partial" name="partial" class="val2" readonly="readonly" value="<%= @soles %>"/></td> 
     <td>$ <span class="soles" value="<%= @multi.to_i %>"></span></td> 
     <td>$ <input name="dolares" class="val3" readonly="readonly" value="<%= @dolares.to_i %>"/></td> 
     </tr> 
     <tr> 
     <td colspan="4" align="center">MONTO TOTAL EN DOLARES: $ <span id="total"> 0.00 </span></td> 
     </tr> 
    </table> 
    </div> 
    <%= link_to image_tag("/images/excel.png",:size => "18x18"),{ 
:controller=>"customer_reports",:action=>"excel",:format=>"xls" ,:search => params[:search]} %> 

这里是我的控制器:

def index 
    @search = CustomerReport.search(params[:search]) 
    @customer_reports = @search.paginate(:page => params[:page], :per_page =>10) 
    @results = CustomerReport.search(params[:search]) 

    @soles=CustomerReport.search(params[:search]).find(:all ,:conditions=>"mount_type = '0'").sum(&:mount) 
    @dolares=CustomerReport.search(params[:search]).find(:all ,:conditions=>"mount_type = '1'").sum(&:mount) 

    respond_to do |format| 
    format.html 
    format.csv { render :csv => "reporte_csv",:partial =>"csv" } 
    format.xls { render :xls => "reporte_xls",:partial =>"xls" } 
    end 
end 

我要导出我的结果。有没有其他方法可以做到这一点?

如果您使用JavaScript编写代码,它将在用户的浏览器中执行,并且Rails在此时不受控制。您可以将JavaScript的结果写入textarea,并让用户将其复制/粘贴到Excel电子表格中。或者,您可以将结果作为表单的输出提交回Rails,并让您的Ruby代码生成一个XLS文件,然后将其发送到浏览器,由用户下载。

在我看来,使用JavaScript进行计算只会妨碍您的工作。你应该在那个页面上有一个表格来收集所需的信息。如上一段所述,将表单中的值提交给Rails,然后让它生成页面。

+0

好的谢谢是一个很好的答案,但我该怎么做? 我明白我不能导出我的JavaScript结果,但我该怎么做才能解决这个问题?你有任何代码吗?或指导? –

+0

代码或指南的哪一部分?这不是一个简单的单行代码,有点问题。你不知道如何在Rails中接收表单的输出?如果是这样,这是Rails所做的一个非常基本的部分。或者,你不知道如何创建一个XLS文件? Ruby有许多宝石可以让你做到这一点,使用Google或其中一个宝石存储库进行的搜索将帮助你。如何使用该宝石将由自己的文档涵盖,因为它们都不同。 –