python创建excel_python写⼊,创建excelsheet 今天遇到了⼀个需求:把⼤量数据写⼊excel表格(⼯作簿),数据分成三类,每⼀类放进⼀个sheet,
参照了⼀个教程,这⾥⽤的是xlwt和xlrd
发现新建sheet的时候,前⼏个sheet都被清空,内容被覆盖掉了,所以在此作了调整,设置全局变量xls_file,⽤于存储⼯作簿
尤其注意以下两⾏代码,修复了这个问题
rb = xlrd.open_workbook(path, formatting_info=True)
workbook = copy(rb)
以下是完整代码
import xlrd
import xlwt
py import copy
global xls_file
xls_file = xlwt.Workbook()
def write_field_xls(path, sheet_name, value):
# path:⼯作簿的路径,sheet_name:第⼀个sheet的名称,value⼆维数组,表⽰插⼊excel的数据
# 第⼀次建⽴⼯作簿时候调⽤
index = len(value) # 获取需要写⼊数据的⾏数
# workbook = xlwt.Workbook() # 新建⼀个⼯作簿
workbook = xls_file
sheet = workbook.add_sheet(sheet_name) # 在⼯作簿中新建⼀个表格
for i in range(0, index):
for j in range(0, len(value[i])):
sheet.write(i, j, value[i][j]) # 像表格中写⼊数据(对应的⾏和列)
workbook.save(path) # 保存⼯作簿
print("xls格式表格写⼊数据成功!")
def write_sheet_xls(path, sheet_name, value):
# 新建sheet的时候进⾏调⽤
index = len(value) # 获取需要写⼊数据的⾏数
# workbook = xlwt.Workbook() # 新建⼀个⼯作簿
rb = xlrd.open_workbook(path, formatting_info=True)
workbook = copy(rb)
sheet = workbook.add_sheet(sheet_name) # 在⼯作簿中新建⼀个表格
for i in range(0, index):
for j in range(0, len(value[i])):
sheet.write(i, j, value[i][j]) # 像表格中写⼊数据(对应的⾏和列)
workbook.save(path) # 保存⼯作簿
print("xls格式表格写⼊数据成功!")
怎么创建excel表格def write_excel_xls_append(path, value, sheet_index=0):
# 新增数据的时候调⽤
global xls_file
global info_index
index = len(value) # 获取需要写⼊数据的⾏数
workbook = xlrd.open_workbook(path) # 打开⼯作簿
# workbook = xls_file
sheets = workbook.sheet_names() # 获取⼯作簿中的所有表格
worksheet = workbook.sheet_by_name(sheets[sheet_index]) # 获取⼯作簿中所有表格中的的第⼀个表格rows_old = ws # 获取表格中已存在的数据的⾏数
new_workbook = copy(workbook) # 将xlrd对象拷贝转化为xlwt对象
new_worksheet = _sheet(sheet_index) # 获取转化后⼯作簿中的第⼀个表格
for i in range(0, index):
for j in range(0, len(value[i])):
new_worksheet.write(i+rows_old, j, value[i][j]) # 追加写⼊数据,注意是从i+rows_old⾏开始写⼊
new_workbook.save(path) # 保存⼯作簿
info_index += 1
print(info_index, "----追加---sheet--", sheet_index)