新手问题 rails 在导出 Excel 是,长数字变成了科学计数法

LPFpengfei · 发布于 2017年06月05日 · 最后由 Kumho 回复于 2017年06月05日 · 341 次阅读
0e1301
wb = xlsx_package.workbook
wb.styles do |s|
  wrap_text = s.add_style  :alignment => { :horizontal => :center,
                                           :vertical => :center ,
                                            :wrap_text => true}
wb.add_worksheet(name: "feedbacks") do |sheet|
sheet.add_row ["商品评价数据"], :style=>wrap_text
sheet.add_row ["订单编号", "客户姓名", "手机号", "评价内容", "回复内容", "评价时间"], :style=>wrap_text
    @sdj_evaluates.find_each do |evaluate|
      sheet.add_row [evaluate.order_no, evaluate.try(:customer).try(:name), evaluate.phone, evaluate.content, evaluate.reply, evaluate.evaluate_created_at.strftime('%Y-%m-%d %H:%M:%S')], :style=>wrap_text
    end
  end
end

上述代码中的order_no是订单编号,可是数据太长,如下图所示:

共收到 9 条回复
0e1301

我是小白,有大神吗?求指导呀

0e1301

为什么没有人帮帮忙呢???

0e1301

在线等,挺急的!!!

10570

输出成字符串

1342

设置单元格属性为文本格式?

27349

在列数据格式中,选择“文本”就行。

4755

没有设置单元格格式的时候,纯数字的字符串会被 Excel 推断为数字类型,我见到的一种方式就是在字符串前面追加 "`" 符号或者 "#"

17

添加 types 参数

if examples.include? :override_data_types
  wb.add_worksheet(:name => "Override Data Type") do |sheet|
    sheet.add_row ['dont eat my zeros!', '0088'] , :types => [nil, :string]
  end
end

https://github.com/randym/axlsx/blob/master/examples/example.rb#L395

28294

在order_no后加上"\t"输出

0e1301 LPFpengfei 关闭了讨论 06月07日 15:30
需要 登录 后方可回复, 如果你还没有账号请点击这里 注册