爬虫中的数据保存----excel文件的保存

一. excel的简介

openpyxl 是一个Python库,用于读取/写入Excel 2010 xlsx / xlsm / xltx / xltm文件。它的诞生是因为缺少可从Python本地读取/写入Office Open XML格式的库。

1. Excel文件的三个对象


workbook: 工作簿,一个excel文件包含多个sheet。
sheet:工作表,一个workbook有多个,表名识别,如“sheet1”,“sheet2”等。
cell: 单元格,存储数据对象

1、openpyxl 读写单元格时,单元格的坐标位置起始值是(1,1),即下标最小值为1,否则报错!
2、openpyxl 支持直接横纵坐标访问,如 A1,B2…

2. 创建工作簿


import openpyxl  # 第三方模块  pip install openpyxl


# 1. 创建一个工作簿对象
work_book = openpyxl.Workbook()
print(work_book)

# 2. 创建表对象
sheet1 = work_book.create_sheet('表1')
print(sheet1)

"""数据填充要基于表格对象操作"""
# 方式一
# sheet1['C3'] = '哈哈'
# sheet1['A1'] = 'python'

# 方式二: 常用于循环
# sheet1.cell(row=1, column=1).value = '111111'
# sheet1.cell(row=2, column=2).value = '222222'

# 方式三: 在append()括号内穿一个序列, 那么会把这个序列作为一行写入到表格中去
sheet1.append([1,2,3,4,5])
sheet1.append((5,6,7,8,9))
sheet1.append({
    
    'A': '12345', 'B': 'abcde'})


# 3. 保存工作簿对象
work_book.save('实例.xlsx')


2 案例–更加的直观

批量写入数据


import openpyxl


# 1. 创建一个工作簿对象
work_book = openpyxl.Workbook()

# 2. 创建表对象
# sheet1 = work_book.create_sheet('表1')
sheet1 = work_book.active  # 使用默认的sheet表

"""数据填充要基于表格对象操作"""
# 写入9×9乘法表
for i in range(1, 10):
    for j in range(1, i + 1):
        print(f'{
      
      j} x {
      
      i} = {
      
      j * i}', end='\t')
        sheet1.cell(row=i, column=j).value = f'{
      
      j} x {
      
      i} = {
      
      j * i}'
    print()


# 3. 保存工作簿对象
work_book.save('实例.xlsx')


3. 读取表格的数据


import openpyxl


# 根据excel文件路径读取表格
work = openpyxl.load_workbook('实例.xlsx')

# 获取工作簿对象里面有几张表格
print(work.sheetnames)

# 根据表明在工作簿中提取表格
sheet = work['Sheet']

print(sheet.max_row)  # 最大行
print(sheet.max_column)  # 最大列

# # 获取第一行数据
# for i in range(1, sheet.max_column + 1):
#     print(sheet.cell(row=1, column=i).value)

# # 获取第一列
# for j in range(1, sheet.max_row + 1):
#     print(sheet.cell(row=j, column=1).value)

for i in range(1, sheet.max_column + 1):
    for j in range(1, sheet.max_row + 1):
        print(sheet.cell(row=i, column=j).value)

4. 注意:

在批量写入数据时,要把with open写在数据循环写入的前面,不然就会有一些错误,慢慢自己发现

猜你喜欢

转载自blog.csdn.net/m0_74459049/article/details/130306115