美文网首页
Phython处理xls

Phython处理xls

作者: 全新的饭 | 来源:发表于2024-09-22 14:24 被阅读0次

示例

import os
import xlrd
import xlwt
from xlutils.copy import copy

if __name__ == "__main__":
    path = r'D:\Fanjc\PythonProjects\处理xls示例'
    templateName = '模板.xls'
    name = '测试.xls'
    
    templatePath = os.path.join(path,templateName)
    workbookPath = os.path.join(path,name)
    workbook = copy(xlrd.open_workbook(templatePath, formatting_info=True))
    sheet = workbook.get_sheet(0)
    
    sheet.write(9,0,'第10行第1列')

    cellStyle = xlwt.XFStyle()
    # 对齐
    alLeft = xlwt.Alignment()
    #左:0x01,中:0x02,右:0x03
    alLeft.horz=0x02
    #上:0x00,中:0x01,下:0x02
    alLeft.vert=0x01
    cellStyle.alignment=alLeft
    sheet.write(9,1,'居中对齐',cellStyle)

    # 字体字号
    font = xlwt.Font()
    font.name = '宋体'
    font.height = 9*20
    cellStyle.font = font
    sheet.write(9,2,'宋体9号',cellStyle)

    # 四边框
    borders = xlwt.Borders()
    borders.top = xlwt.Borders.THIN # DASHED虚线,NO_LINE没有,THIN实线
    borders.bottom = xlwt.Borders.DASHED
    borders.left = xlwt.Borders.NO_LINE
    borders.right = xlwt.Borders.THIN
    cellStyle.borders = borders
    sheet.write(9,3,'上实下虚左无右实',cellStyle)

    # 常规、保留2位小数、百分数
    value = 10.12345678

    cellNumFormatNormal = 'general'
    cellStyle.num_format_str = cellNumFormatNormal
    sheet.write(9,4,value,cellStyle)
    
    cellNumFormatNum = "0.00"
    cellStyle.num_format_str = cellNumFormatNum
    sheet.write(9,5,value,cellStyle)
    
    cellNumFormatPercent = "0.00%"
    cellStyle.num_format_str = cellNumFormatPercent
    sheet.write(9,6,value,cellStyle)

    # 保存
    workbook.save(workbookPath)

用到的库

xls相关:xlrd、xlwt、xlutils
xlutils实际只导入copy

from xlutils.copy import copy

通用(并非一定要用):os、shutil
os用于拼接路径
shutil用于复制文件

shutil.copy(原始表路径, 新表路径)

修改workbook内容

实际的做法是

  1. copy该Workbook内容(保留其格式)
workbook = copy(xlrd.open_workbook(workbook路径,  formatting_info=True))
  1. 获取第1个sheet(一般都只使用第一个sheet保存数据)
sheet = workbook.get_sheet(0)
  1. 修改获取到的sheet的某个cell内容
sheet.write(行,列,内容,cellStyle)

行和列都是从0开始数
cellStyle:新创建一个XFStyle,修改相关参数,传入write.

  1. 保存新表
workbook.save(workbook路径)

修改cellStyle

创建一个Style

cellStyle = xlwt.XFStyle()

在write某cell的内容时,将cellStyle作为参数传入write方法,即可设置该cell的style为cellStyle。

修改内容

  1. 对齐
    水平靠左对齐
alLeft = xlwt.Alignment()
alLeft.horz=0x01
alLeft.vert=0x01
cellStyle.alignment=alLeft

水平居中对齐

alCenter = xlwt.Alignment()
alCenter.horz=0x02
alCenter.vert=0x01
cellStyle.alignment=alCenter

水平靠右对齐

alRight = xlwt.Alignment()
alRight.horz=0x03
alRight.vert=0x01
cellStyle.alignment=alRight
  1. 字体字号
    如:宋体9号
font = xlwt.Font()
font.name = '宋体'
font.height = 9*20
cellStyle.font = font
  1. 边框
    如四边全实线
borders = xlwt.Borders()
borders.top = xlwt.Borders.THIN # DASHED虚线,NO_LINE没有,THIN实线
borders.bottom = xlwt.Borders.THIN
borders.left = xlwt.Borders.THIN
borders.right = xlwt.Borders.THIN
cellStyle.borders = borders
  1. 单元格数字格式
    常规
cellNumFormatNormal = 'general'
cellStyle.num_format_str = cellNumFormatNormal

数值(保留2位小数)

cellNumFormatNum = "0.00"
cellStyle.num_format_str = cellNumFormatNum

百分比(保留2位小数)

cellNumFormatPercent = "0.00%"
cellStyle.num_format_str = cellNumFormatPercent

相关文章

网友评论

      本文标题:Phython处理xls

      本文链接:https://www.haomeiwen.com/subject/xwztrjtx.html