You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Ruby脚本开发求助:读取Excel并生成2万条指定格式随机记录写入

Ruby脚本实现Excel批量生成随机记录

前置依赖

首先安装所需Ruby gem:

gem install rubyXL faker

完整脚本代码

require 'rubyXL'
require 'faker'
require 'date'

# 加载目标Excel文件,替换为你的文件路径
workbook = RubyXL::Parser.parse('your_excel_file.xlsx')
worksheet = workbook[0] # 默认操作第一个工作表

# 定位各列的位置(匹配表头)
header_cells = worksheet[0].cells.compact
sn_col = header_cells.index { |cell| cell.value == 'SN' }
serial_col = header_cells.index { |cell| cell.value == 'Serial' }
calcode_col = header_cells.index { |cell| cell.value == 'CalCode' }
useby_col = header_cells.index { |cell| cell.value == 'UseBy' }

# 生成2万条随机记录
20000.times do |idx|
  # SN:基于现有行数自增,避免重复
  sn = (worksheet.row_count - 1) + idx + 1

  # Serial:6位字母数字混合字符串(大小写)
  serial = Faker::Alphanumeric.alphanumeric(number: 6, min_alpha: 1, min_numeric: 1).upcase

  # CalCode:5位段+连字符+5位段的格式
  cal_segment1 = Faker::Alphanumeric.alphanumeric(number: 5, min_alpha: 1, min_numeric: 1).upcase
  cal_segment2 = Faker::Alphanumeric.alphanumeric(number: 5, min_alpha: 1, min_numeric: 1).upcase
  calcode = "#{cal_segment1}-#{cal_segment2}"

  # UseBy:未来随机日期,格式为DD MMM YYYY(如09 Sep 2028)
  target_date = Faker::Date.between(from: Date.today, to: 10.years.from_now)
  use_by_str = target_date.strftime('%d %b %Y')

  # 写入新行数据
  new_row = worksheet.add_row
  new_row[sn_col] = RubyXL::Cell.new(sn)
  new_row[serial_col] = RubyXL::Cell.new(serial)
  new_row[calcode_col] = RubyXL::Cell.new(calcode)
  new_row[useby_col] = RubyXL::Cell.new(use_by_str)
end

# 保存修改后的文件
workbook.write('updated_excel_file.xlsx')
puts "20000条记录已成功追加到Excel文件!"

关键规则实现说明

  • Serial:通过Faker的alphanumeric方法生成6位混合字符,强制包含至少1个字母和1个数字,转大写后匹配示例格式
  • CalCode:拆分生成两个独立的5位混合字段,用连字符拼接,保证和要求的CC3JU-J3GWR格式一致
  • UseBy:生成今日起10年内的随机日期,通过strftime格式化指定为DD MMM YYYY样式(月份为3字母缩写)
  • SN:基于工作表现有行数自增,确保新记录的序号不重复

使用注意事项

  • 替换脚本中的your_excel_file.xlsx为实际的Excel文件路径
  • 若需要调整日期范围,修改10.years.from_now为其他时间跨度(如5.years.from_now)
  • 脚本会在现有数据的下方追加新记录,不会覆盖原有内容

内容的提问来源于stack exchange,提问作者Kumar Nikhil

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.23 14:30:31