mysql - 向工作表写入查询时存储为文本的数字

标签 mysql ruby excel rubygems

我正在使用以下 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 for OSX (Office 365) 中打开文件时,每个主要包含数字的单元格都会出现以下错误:

Excel error.

此报告的目标受众可能会因此类错误而分心。

我已经尝试了 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。

关于mysql - 向工作表写入查询时存储为文本的数字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35996654/

相关文章:

excel - 使用宏格式化工作表上的数据

javascript - 将 GCSQL 中存储为 blob 的 SVG 图像转换为 Apps 脚本中的字符串

PHP textarea 将额外的新行保存到 MySQL DB

Mysql 两个联接在一张表上

ruby - 如何在没有 ruby​​ 的情况下列出 init.d 脚本的文件

ruby-on-rails - 为什么在 class_eval 本身就足够时使用 include 模块

excel - 文件名通配符的返回值

C#:如何捕获MySql回滚中的异常

ruby-on-rails - 通过生成器添加从 Rails 引擎 gem 到应用程序的新迁移

excel - 使用表名检查特定表是否存在时的 VBA Excel 错误处理