1. 基本实现
import xlsxwriter # 导入模块 # 这里提供一种直接保存到桌面的方法 返回值为本机桌面地址路径 def get_desktop(): key = winreg.OpenKey(winreg.HKEY_CURRENT_USER, r'Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders') return winreg.QueryValueEx(key, "Desktop")[0] url = get_desktop()+"/new_excel.xlsx" # 桌面路径与文件名相加 workbook = xlsxwriter.Workbook(url) # 新建excel表,可写不使用以上函数自己写入要保存的路径 worksheet = workbook.add_worksheet() # 新建sheet,也可设置为sheet的名称为"sheet1"等自定义字段 headings = ['时间', "姓名", '年龄'] # 设置表头数据 data = [ ['2021-8-1', '2021-8-2', '2021-8-3', '2021-8-4', '2021-8-5', '2021-8-6'], ["张三", "李四", "王五", "赵六", "横七", "竖八"], [30, 60, 70, 50, 40, 30], ] # 每一个列表代表excel中一列的数据 worksheet.write_row('A1', headings) # 插入表头 # 按列插入 worksheet.write_column('A2', data[0]) worksheet.write_column('B2', data[1]) worksheet.write_column('C2', data[2]) # 也可根据需求按行插入 worksheet.write_row("A8", data[0]) worksheet.write_row("A9", data[1]) worksheet.write_row("A10", data[2]) workbook.close() # 将excel文件保存关闭
生成的excel样式如下
2. 自定义格式
2.1通过字典的方式直接设置格式
workfomat2 = workbook.add_format({
'bold': True, # 字体加粗
'border': 1, # 单元格边框宽度
'align': 'left', # 对齐方式
'valign': 'vcenter', # 字体对齐方式
'bg_color': 'yellow', # 单元格背景颜色
})
# 按列插入
worksheet.write_column('A2', data[0], cell_format=workfomat2)
worksheet.write_column('B2', data[1], cell_format=workfomat2)
worksheet.write_column('C2', data[2], cell_format=workfomat2)
2.2 通过format对象的方式设置单元格格式
workfomat = workbook.add_format() # 新建表格样式
workfomat.set_bold(True) # 字体加粗
workfomat.set_border(1) # 边框宽度
workfomat.set_num_format('0.00') # 格式化数据格式为小数点后两位
workfomat.set_align('center') # 设置对齐方式
workfomat.set_bg_color('pink') # 设置单元格背景颜色
worksheet.write_row('A1', headings, cell_format=workfomat) # 插入表头
2.3 其他格式方法
单元格的一些操作 方法还有很多 可根据需求自行研究
worksheet.merge_range('D1:D7', '合并单元格') # 合并单元格
worksheet.set_tab_color('red') # 设置sheet标签颜色
worksheet.set_column('A:D', 25) # 设置A到D列的列宽为25
worksheet.write_formula('C10', '=C2+C3') # 设置表格中的计算,‘C10’是计算结果,'=C2+C3'是计算公式
最终效果如下