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

LPFpengfei · June 05, 2017 · Last by Kumho replied at June 05, 2017 · 3229 hits
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 是订单编号,可是数据太长,如下图所示:

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

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

在线等,挺急的!!!

输出成字符串

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

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

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

添加 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

在 order_no 后加上"\t"输出

LPFpengfei closed this topic. 07 Jun 15:30
You need to Sign in before reply, if you don't have an account, please Sign up first.