Python 写入Excel文件(后缀名分别为.xlsx和.xls)

时间:2024-02-22 20:39:02

1、写入xls文件

①下载依赖库 xlwt

python -m pip install xlwt  

②普通写入

# encoding=utf-8
# 下载 python -m pip install xlwt
import xlwt

if __name__ == \'__main__\':
    book = xlwt.Workbook()  # 创建一个新的工作簿
    sheet = book.add_sheet(\'工作表\')  # 添加一个工作表
    sheet.write(0, 0, \'嘻嘻\')  # 写入数据到几行几列
    sheet.write(0, 1, \'哈哈\')  # 写入数据到几行几列
    sheet.write(0, 2, \'嘿嘿\')  # 写入数据到几行几列
    sheet.write(1, 0, \'南风\')  # 写入数据到几行几列
    sheet.write(2, 0, \'轻语\')  # 写入数据到几行几列
    sheet.write(3, 0, \'鼓楼\')  # 写入数据到几行几列
    book.save(\'工作簿.xls\')  # 保存工作薄, 如果保存后缀名为 .xlsx 则在 Microsoft Excel 可能会报错

运行结果

 

提示:

正常应该保存后缀名为.xls,因为xlwt就是以xls的格式写文件的。

如果保存的后缀名为.xlsx,则在WPS中可以正常打开,因为WPS兼容性好,而在Microsoft Excel中会报以下错误

 ③设置单元格格式

# -*- encoding=utf-8 -*-

import xlwt

if __name__ == \'__main__\':
    book = xlwt.Workbook()  # 创建工作薄
    sheet = book.add_sheet(\'工作表\')  # 添加工作表
    sheet.write(0, 0, \'不设置样式\')  # 写入数据

    align = xlwt.Alignment()
    align.horz = xlwt.Alignment.HORZ_CENTER  # 水平居中
    align.vert = xlwt.Alignment.VERT_CENTER  # 垂直居中

    font = xlwt.Font()  # 字体基本设置
    font.name = u\'新宋体\'
    font.colour_index = 32764  # 字体颜色
    font.height = 160  # 字体大小

    borders = xlwt.Borders()
    borders.left = xlwt.Borders.THIN  # 添加边框,细实线
    borders.right = xlwt.Borders.THIN  # 添加边框,细实线
    borders.top = xlwt.Borders.THIN  # 添加边框,细实线
    borders.bottom = xlwt.Borders.THIN  # 添加边框,细实线

    sheet.col(3).width = 12 * 256  # 设置列宽,一个中文等于两个英文等于两个字符,12为字符数,256为衡量单位

    pattern = xlwt.Pattern()
    pattern.pattern = xlwt.Pattern.SOLID_PATTERN  # 设置背景颜色的模式
    pattern.pattern_fore_colour = 2  # 背景颜色

    style = xlwt.XFStyle()  # 设置样式
    style.font = font  # 字体样式
    style.alignment = align  # 排列样式
    style.borders = borders  # 边框样式
    style.pattern = pattern  # 背景

    sheet.write(3, 3, \'设置单元格格式\', style)

    book.save(\'style.xls\')

运行结果

 xls单元格格式学习链接: https://blog.csdn.net/weixin_44065501/article/details/88899257

④合并单元

# -*- encoding=utf-8 -*-
import xlwt

if __name__ == \'__main__\':
    workbook = xlwt.Workbook()  # 创建工作薄
    sheet1 = workbook.add_sheet(\'工作表\')  # 创建工作表
    sheet1.write_merge(0, 0, 0, 1, \'合并单元格\')  # 合并从0行到0行,从0列到1列
    sheet1.write_merge(2, 4, 0, 3, \'合并单元格\')  # 合并从2行到4行,从0列到3列
    workbook.save(\'merge.xls\')

运行结果

二、写入xlsx文件

①下载依赖库

python -m pip install openpyxl

②普通写入

# encoding=utf-8
import openpyxl

if __name__ == \'__main__\':

    book = openpyxl.Workbook()  # 创建空白工作薄
    sheet = book.active  # 获取当前默认工作表
    sheet.name = \'工作表\'  # 修改工作表名称
    sheet.cell(1, 1, \'数据\')  # 几行几列写入数据
    sheet.cell(1, 2, \'数据\')  # 几行几列写入数据
    sheet.cell(1, 3, \'数据\')  # 几行几列写入数据
    sheet.cell(1, 4, \'数据\')  # 几行几列写入数据
    sheet.cell(2, 1, \'数据\')  # 几行几列写入数据
    sheet.cell(3, 2, \'数据\')  # 几行几列写入数据
    sheet.cell(4, 3, \'数据\')  # 几行几列写入数据
    sheet.cell(5, 4, \'数据\')  # 几行几列写入数据

    data = [[\'数据1\', \'数据2\', \'数据3\'], [\'数据1\', \'数据2\', \'数据3\'], [\'数据1\', \'数据2\', \'数据3\']]
    for one in data:
        sheet.append(one)  # 写入一行
    book.save(\'普通写入.xlsx\')  # 保存为 xlsx 格式文件 如果保存为xls, 则 Microsoft Excel 可能会报警告

运行结果

 提示:

正常应该保存后缀名为.xlsx,因为openpyxl就是以xlsx格式写文件的。

如果保存的后缀名为.xls,则在WPS中可以正常打开,因为WPS兼容性好,而在Microsoft Excel中会报以下警告

 ③设置单元格格式

# encoding=utf-8
import openpyxl
from openpyxl.styles import *
from openpyxl.styles.colors import COLOR_INDEX

if __name__ == \'__main__\':

    book = openpyxl.Workbook()  # 创建空白工作薄
    sheet = book.active  # 获取当前默认工作表
    sheet.name = \'工作表\'  # 修改工作表名称
    sheet.cell(1, 1, \'数据\', )  # 几行几列写入数据
    cell = sheet.cell(1, 1)
    cell.font = Font(color=Color(rgb=COLOR_INDEX[2]))

    book.save(\'颜色.xlsx\')  # 保存为 xlsx 格式文件 如果保存为xls, 则 Microsoft Excel 可能会报警告

更详细的xlsx格式学习链接 https://www.py.cn/jishu/jichu/20317.html

文档链接 https://www.osgeo.cn/openpyxl/styles.html