初始化表格并写入表头的方法。
首先,需要安装xlwt:
实现效果如下:
具体代码:
import os
import ast
import xlwt
def init_excel(filename, sheet_name_titles):
"""
初始化表格,并写入表头
param: filename, 文件名称
param: sheet_name_titles, 表单中的表头,格式为[{sheet1:[标题1,标题2, ....]},{sheet1:[标题1,标题2, ....]}]
"""
try:
excel = xlwt.Workbook(encoding='utf-8')
for i in range(len(sheet_name_titles)):
sheet_name = list(sheet_name_titles[i].keys())[0]
sheet = excel.add_sheet(sheet_name)
head_list = sheet_name_titles[i][sheet_name]
print(head_list)
head_name = []
for k in head_list:
print(k)
head_name.append(k)
print(head_name)
for j in range(len(head_name)):
sheet.write(0, j, head_name[j])
excel.save(filename)
except Exception as e:
print(123)
# 如果要调用,如下:
init_excel("test.xls", [{"yeqian1": ["1", "11", "111"]}, {"yeqian2": ["2", "22"]}])
向表格中写入内容(追加),与上面的方法对照使用。
首先,安装xlrd、xlwt、xlutils库:
实现效果如下:
具体代码:
import xlwt
import xlrd
from xlutils.copy import copy
def write_excel(filename, sheet_name, sheet_index, words):
"""
param:filename, 文件名称
param:sheet_name, 页签名称
param:sheet_index, 页签序号,从0开始
param: words, 写入的页签及对应页签中一行的值,格式 [{"表头名称1":"输入内容1"}, {"表头名称2":"输入内容2"}, ......]
"""
try:
old_excel = xlrd.open_workbook(filename) # 打开excel
work_sheet = old_excel.sheet_by_name(sheet_name) # 读取sheet 页
now_numbers = work_sheet.nrows # 获取现有行
heads = work_sheet.row_values(0) # 获取sheet页第0行的值,即表头的值
new_excel = copy(old_excel) # copy一个新的excel对象, 使对象xlrd变为xlwt
print(new_excel)
new_sheet = new_excel.get_sheet(sheet_index) # 新建一个sheet
i = now_numbers
for j in range(len(words)):
w = words[j][heads[j]] # 得到对应列的值
new_sheet.write(i, j, w) # 写入新的sheet页
new_excel.save(filename)
except Exception as e:
print(e)
# 引用方法
write_excel("test.xls", "yeqian1", 0, [{"cc": "ces"}, {"dd": "hhh"}, {"ee": "eeee"}])