基于python的Excel处理基础

Excel的基本知识:

    workbook:工作簿

    worksheet:表单/工作表

    row:行

    colum:列

    cell:单元格

更改表格编号方式为0开始:

    对于Microsoft office:文件-选项-公式-使用公式-R1C1引用样式

    对于WPS office:选项-常规与保存-r1c1

xlrd与xlwt

需要 pip install xlrd

import xlrd
book1 = xlrd.open_workbook('path/file.xlsx')   # 打开对应excel工作簿
print(book1.nsheets)   # 簿中表单数int
sheet_name = book1.sheet_names()    # 所有表单名list
sheet1 = book1.sheet_by_name(表单名)   # 按名字查找表单
fruit2 = sheet1.cell_value(0, 1)    # 特定位置单元格的数据

bool1 = fruit2.endswith('s')   # 判断是否以's'结尾
bool2 = fruit2.startswith('x') # 判断是否以'x'开始
#。。。。。。。。。。。。。。。。。。。。。。分割线。。。。。。。。。。。。。。。。。。。。。。。。。。
"""
表单中第二列对应水果,第三列对应数量
将水果名字中含有'e'的数量总数
"""
sum_col2 = sum(sheet1.col_values(2))
sum_of_e = 0
for row, fru in enumerate(sheet1.col_values(1)):
    if 'e'in fru:
        sum_of_e += sheet1.cell_value(row, 2)
print(f'{sum_of_e}')

需要 pip install xlwt

import xlwt     # 导入excel写入库
# from xlutils.copy import copy    # 导入excel格式库

all_data = []
for i in range(1, sheet1.nrows):   # 遍历所有行
    time = sheet1.cell_value(i, 0)      # 第一列所有值
    fruit = sheet1.cell_value(i, 1)     # 第二列所有值
    num = sheet1.cell_value(i, 2)       # 第三列所有值

    data = {'时间': time, '水果': fruit, '数量': num}    # 将所有数据按列归类,保存为字典
    if 'e' in data['水果']:             # 将所有不含'e'的水果,及其对应的数据保存在变量中
        all_data.append(data)
    else:
        continue
print(all_data)

#。。。。。。。。。。。。。。。。。。。。。分割线。。。。。。。。。。。。。。。。。。。。。。。。。。
book2 = xlwt.Workbook()                         # 创建一个工作簿
sheet2 = book2.add_sheet('xlwt创建表单')        # 添加一个表单
sheet2.write(0, 0, 'xlwt写入内容')              # 默认格式写入一个内容

style2 = xlwt.XFStyle()       # 初始化xls风格

font2 = xlwt.Font()           # 初始化格式
font2.name = '微软雅黑'           # 设置字体
font2.bold = True                 # 设置加粗
font2.Height = 18*20              # 设置字号18
font2.Italic = True               # 设置斜体
style2.font = font2           # 保存格式到风格

borders2 = xlwt.Borders()                  # 初始化边框
borders2.top = xlwt.Borders.THIN           # 设置上边框,细线
borders2.bottom = xlwt.Borders.DOTTED      # 设置下边框,点线
borders2.left = xlwt.Borders.NO_LINE       # 设置左边框,无边框
borders2.right = xlwt.Borders.THICK        # 设置右边框,粗线
style2.borders = borders2                  # 保存边框到风格

alignment2 = xlwt.Alignment()              # 初始化对齐方式
alignment2.horz = xlwt.Alignment.HORZ_CENTER        # 水平对齐方式,居中
alignment2.vert = xlwt.Alignment.VERT_BOTTOM        # 竖直对齐方式,底部
style2.alignment = alignment2                   # 保存对齐方式到风格

sheet2.write(1, 1, 'xlwt写入内容', style2)      # 以自定义风格,写入数据

book2.save('C:/Users/Fally J/Desktop/python tofun/xlwt的工作簿.xls')    # 保存该工作簿

以上方式均适用于xls文件,对于xlsx兼容性很差

openpyxl

"""
通过openpyxl读写库, 对excel表进行处理
"""
import openpyxl     # 导入xlxs读写库
from openpyxl.styles import Font, colors
from openpyxl.styles import PatternFill, colors

book3 = openpyxl.Workbook()    #创建工作簿
sheet3 = book3.active          # 激活第一张默认表单
sheet3.title = 'new_sheet'     # 给工作簿命名

sheet_last = book3.create_sheet('first sheet', 0)  # 对应位置插入新表单
sheet4 = book3['first sheet']   # 按名字找到表单

sheet4['B2'] = 'B2'       # 对应位置写入
sheet4.cell(2, 3, 'C2')   # 对应位置写入
sheet4['C2'].font = Font(color = colors.RED,  # 更改字体颜色
                         size = 15,           # 更改字体字号
                         bold = True,         # 是否加粗
                         italic = True)       # 是否斜体
sheet4['B2'].fill = PatternFill('solid', colors.BLUE)   # 更改背景色

book3.save('new_excel.xlsx')   # 保存为'文件名.xlsx'

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值