ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

day20文件操作

2022-03-18 19:31:46  阅读:181  来源: 互联网

标签:文件 sheet wb day20 value 获取 workbook 操作 openpyxl


文件操作

导入openpyxl模块

import openpyxl

1.获取工作对象

# openpyxl.load_workbook(文件路径)
workbook = openpyxl.load_workbook('files/demo2.xlsx')

2.获取工作表

1)获取当前工作簿中所有的工作表的表名

names = workbook.sheetnames
print(names)

2)获取工作表对象

a.工作簿对象[表名]

# student_sheet = workbook['学生表']
teacher_sheet = workbook['老师表']
course_sheet = workbook['课程表']

b.获取活跃表:工作簿对象.active

student_sheet = workbook.active

3.表相关操作

1)获取最大行数和列数

表对象.max_column - 最大列数

表对象.max_row - 最大行数

m_col = student_sheet.max_column
m_row = student_sheet.max_row

2)获取单元格

a.表对象.cell(行号,列号) - 获取指定位置单元格(行号和列号都是从1开始的数字)

cell1 = student_sheet.cell(2, 2)
print(cell1)

获取单元个内容:单元格对象.value

print(cell1.value)

b.表对象[位置]

cell2 = student_sheet['D2']
print(cell2.value)

读操作练习

import openpyxl

def read_excel(path):
    # 获取工作簿
    wb = openpyxl.load_workbook(path)
    # 获取表
    sheet = wb.active
    # 最大行数和列数
    m_row, m_col = sheet.max_row, sheet.max_column
    # 获取数据
    all_data = []
    for row in range(1, m_row+1):
        line_data = []
        for col in range(1, m_col+1):
            value = sheet.cell(row, col).value
            line_data.append(value)
        all_data.append(line_data)
    return all_data


def read_col_data(file, col):
    pass


if __name__ == '__main__':
    result = read_excel('files/小宝剑大药房2018年销售数据.xlsx')
    print(result)

文件写操作

import openpyxl
import os

1.获取工作簿

1)获取已经存在的excel文件对应的工作簿

wb = openpyxl.load_workbook('files/demo2.xlsx')

2)创建新的工作簿

wb = openpyxl.Workbook()

如果文件存在直接打开,不存在新建

if os.path.exists('files/demo4.xlsx'):
    wb = openpyxl.load_workbook('files/demo4.xlsx')
else:
    wb = openpyxl.Workbook()

2.基于工作表的写操作

1)添加工作表:工作簿对象.create_sheet()

sheet1 = wb.create_sheet()
sheet2 = wb.create_sheet('学生表')
sheet3 = wb.create_sheet('老师表', 0)

有酒直接获取表,没有才创建表

if '老师表' in wb.sheetnames:
    teacher_sheet = wb['老师表']
else:
    teacher_sheet = wb.create_sheet('老师表', 0)

2)删除工作表:工作簿对象.remove(表对象)

if 'Sheet' in wb.sheetnames:
    wb.remove(wb['Sheet'])

3.基于单元格的写操作 - 修改单元格内容

单元个对象.value=新内容

teacher_sheet.cell(2, 1).value = '小明'

将单元个内容赋值为None,就是在删除单元格

teacher_sheet.cell(1, 2).value = None

在文件的最后添加多行数据

datas = [
	[],
	[],
	[]
]

4.保存文件

工作簿对象.save(文件路劲)

wb.save('files/demo4.xlsx')

标签:文件,sheet,wb,day20,value,获取,workbook,操作,openpyxl
来源: https://blog.csdn.net/pythonxiaobai101/article/details/123582678

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有