GS1.py 1.7 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273
  1. import xlsxwriter
  2. import time
  3. def gs1(start_at=1, total=1):
  4. result_list = []
  5. for i in range(total):
  6. upc_a = '192995409484'
  7. serial = start_at + i
  8. indicator = '0'
  9. company_prefix = upc_a[0:6]
  10. item_number = upc_a[6:11]
  11. if len(company_prefix) < 7:
  12. company_prefix = company_prefix.zfill(7)
  13. header = 48
  14. filter = 1
  15. partition = 5
  16. header_bin = format(header, 'b').zfill(8)
  17. filter_bin = format(filter, 'b').zfill(3)
  18. partition_bin = format(partition, 'b').zfill(3)
  19. company_prefix_bin = format(int(company_prefix), 'b').zfill(24)
  20. item_number_bin = format(int(indicator + item_number), 'b').zfill(20)
  21. serial_bin = format(serial, 'b').zfill(38)
  22. epc_bin = header_bin + filter_bin + partition_bin + company_prefix_bin + item_number_bin + serial_bin
  23. epc_hex = hex((int(epc_bin, 2)))[2:].upper()
  24. result = epc_hex
  25. result_list.append(result)
  26. return result_list
  27. def generate_excel(result_list):
  28. workbook = xlsxwriter.Workbook(str(int(time.time()))+'.xlsx')
  29. font_14 = workbook.add_format({'font_name': u'宋体', 'size': 14, 'align': 'center'})
  30. font_16 = workbook.add_format({'font_name': u'宋体', 'size': 16, 'align': 'center'})
  31. current_sheet = workbook.add_worksheet()
  32. current_sheet.set_column('A1:A1', 30)
  33. for index, record in enumerate(result_list):
  34. current_sheet.write(index, 0, record, font_16)
  35. workbook.close()
  36. if __name__ == "__main__":
  37. # 起始位
  38. start_at = 1
  39. # 生成总数量
  40. total = 20
  41. result_list = gs1(start_at, total)
  42. generate_excel(result_list)
  43. print('done')