将查询写入工作表时数字存储为文本
Number Stored as Text when Writing Query to a Worksheet
我正在使用以下 gem 创建报告:
require "mysql2"
require "watir"
require "io/console"
require "writeexcel"
在我使用 mysql2
查询数据库并将查询转换为多维数组之后:
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
当我在最新版本的 Excel 中为 OSX (Office 365) 打开文件时,我收到以下错误,因为 每个 单元格主要包含数字:
此报告的目标受众可能会因此类错误而分心。
我已经尝试了 writeexcel
here.
文档中的所有 .set_num_format
可枚举方法
如何使用包含特殊字符和数字(例如货币)的列创建一个报表,write excel?
我是否应该考虑完全利用另一个 gem?
创建工作表后定义格式。
format01 = workbook.add_format
format01.set_num_format('#,##0.00')
然后用格式写列。
worksheet.write_col("A2", arr, format01)
由于我不是 Ruby 用户,这只是 S.W.A.G。
我正在使用以下 gem 创建报告:
require "mysql2"
require "watir"
require "io/console"
require "writeexcel"
在我使用 mysql2
查询数据库并将查询转换为多维数组之后:
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
当我在最新版本的 Excel 中为 OSX (Office 365) 打开文件时,我收到以下错误,因为 每个 单元格主要包含数字:
此报告的目标受众可能会因此类错误而分心。
我已经尝试了 writeexcel
here.
.set_num_format
可枚举方法
如何使用包含特殊字符和数字(例如货币)的列创建一个报表,write excel?
我是否应该考虑完全利用另一个 gem?
创建工作表后定义格式。
format01 = workbook.add_format
format01.set_num_format('#,##0.00')
然后用格式写列。
worksheet.write_col("A2", arr, format01)
由于我不是 Ruby 用户,这只是 S.W.A.G。