python xlsxwriter 写大数据到excel

  1. 添加表头样式
import datetime
import xlsxwriter


val = {'1': 1,
           '2': "AA",
           '3': "BB",
           '4': "CC",
           '5': "DD",
           '6': "EE",
           "7":"FF",
           "8":"GG",
           "9":"HH",
           "10":"2022-01-24",
           "11":"MM",
           "12":"JJ",
           "13":"98_Others",
           "14":"ADC",
           "15":"2022-12-31",
           "16":1,
           "17":"FRCN-191317",
           "18":"人事代理服务合同",
           "19":"No",
           "20":"cost",
           "21":"allocation",
           "22":"true",
           "23":118596,
           "24":700000.0,
           "25":"CNY",
           "26":"null"}



def yield_big_data(val):
    for i in range(2):
        yield val
					

workbook = xlsxwriter.Workbook('write_dict.xlsx',{'constant_memory': True})
worksheet = workbook.add_worksheet("ellis")

print(datetime.datetime.now())
row=1

# Add a header format.
header_format = workbook.add_format({
    'bold': True,
    'fg_color': '#ffcccc',
    'border': 1})



col=0
# 设置表头样式
for key in val.keys():
    worksheet.write(0, col, key, header_format)
    col+=1

for my_dict in yield_big_data(val):
    worksheet.write_row(row, 0, list(my_dict.values()))
    row+=1
workbook.close()
print(datetime.datetime.now())
  1. 往单元格写数据
import xlsxwriter

workbook = xlsxwriter.Workbook('write_data.xlsx')
worksheet = workbook.add_worksheet()

worksheet.write(0, 0, 1234)     # Writes an int
worksheet.write(1, 0, 1234.56)  # Writes a float
worksheet.write(2, 0, 'Hello')  # Writes a string
worksheet.write(3, 0, None)     # Writes None
worksheet.write(4, 0, True)     # Writes a bool

workbook.close()
  1. 写数组数据
import xlsxwriter

workbook = xlsxwriter.Workbook('write_list.xlsx')
worksheet = workbook.add_worksheet()

my_list = [1, 2, 3, 4, 5]

for row_num, data in enumerate(my_list):
    worksheet.write(row_num, 0, data)

workbook.close()
  1. 写一行或者一列
import xlsxwriter

workbook = xlsxwriter.Workbook('write_list.xlsx')
worksheet = workbook.add_worksheet()

my_list = [1, 2, 3, 4, 5]

worksheet.write_row(0, 1, my_list)
worksheet.write_column(1, 0, my_list)

workbook.close()
  1. 获取所有sheet以及sheet的行数
    需要注意的是excel不能close,即读已存在的excel,将不行
import datetime
import xlsxwriter


val = {'1': 1,
           '2': "AA",
           '3': "BB",
           '4': "CC",
           '5': "DD",
           '6': "EE",
           "7":"FF",
           "8":"GG",
           "9":"HH",
           "10":"2022-01-24",
           "11":"MM",
           "12":"JJ",
           "13":"98_Others",
           "14":"ADC",
           "15":"2022-12-31",
           "16":1,
           "17":"FRCN-191317",
           "18":"人事代理服务合同",
           "19":"No",
           "20":"cost",
           "21":"allocation",
           "22":"true",
           "23":118596,
           "24":700000.0,
           "25":"CNY",
           "26":"null"}



def yield_big_data(val):
    for i in range(10):
        yield val
					

workbook = xlsxwriter.Workbook(r'C:\Users\84977\Desktop\E-Document-Frontend\write_dict.xlsx',{'constant_memory': True})

worksheet = workbook.add_worksheet("ellis")

print(workbook.worksheets())
worksheet = workbook.get_worksheet_by_name('ellis')

print(datetime.datetime.now())
row=1

# Add a header format.
header_format = workbook.add_format({
    'bold': True,
    'fg_color': '#ffcccc',
    'border': 1})



col=0
# 设置表头样式
for key in val.keys():
    worksheet.write(0, col, key, header_format)
    col+=1

for my_dict in yield_big_data(val):
    worksheet.write_row(row, 0, list(my_dict.values()))
    row+=1

#获取所有sheet
for item in workbook.worksheets():
    print(item.name)
#通过名称获取sheet
worksheet = workbook.get_worksheet_by_name('ellis')
#打印sheet的行数
print(len(worksheet.table))

workbook.close()

https://xlsxwriter.readthedocs.io/working_with_data.html

https://xlsxwriter.readthedocs.io/worksheet.html

https://xlsxwriter.readthedocs.io/working_with_memory.html

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值