将查询写入工作表时,以文本forms存储的编号

我正在使用以下gem创build一个报告:

require "mysql2" require "watir" require "io/console" require "writeexcel" 

在用mysql2查询数据库之后,将查询转换为multidimensional array,如下所示:

 Mysql2::Client.default_query_options.merge!(:as => :array) mysql = Mysql2::Client.new(:host => "01.02.03.405", :username => "user", :password => "pass123", :database => "db") report = mysql.query("SELECT ... ASC;") arr = [] report.each {|row| arr << row} 

然后最终将数据写入Excel电子表格中,如下所示:

 workbook = WriteExcel.new("File.xls") worksheet = workbook.add_worksheet(sheetname = "Report") header = ["Column A Title", ... , "Column N Title"] worksheet.write_row("A1", header) worksheet.write_col("A2", arr) workbook.close 

当我在OSX(Office 365)的最新版本的Excel中打开文件时,我得到每个包含大多数数字的单元格的以下错误:

Excel错误。

这份报告的目标受众可能会因为这样的错误而分心。

我在这里尝试了.set_num_format文档中find的所有.set_num_format枚举方法。

如何创build一个包含特殊字符和数字(如货币)的列的报告,并write excel?

我应该看看完全利用另一个创业板?

在创build工作表之后定义格式。

 format01 = workbook.add_format format01.set_num_format('#,##0.00') 

然后写入格式的列。

 worksheet.write_col("A2", arr, format01) 

由于我不是Ruby用户,这只是一个SWAG