notas de estudio del módulo python openpyxl
Directorio de artículos
Prefacio
Xiaobai, ¡dame un consejo! ¡
Bienvenido a cometer errores! ! !
Una biblioteca openpyxl
La biblioteca openpyxl es una biblioteca de Python que puede leer y escribir Excel (parece ser al menos la versión 2010 de Excel)
En segundo lugar, use operaciones básicas
1. Cree una nueva tabla de Excel / abra una tabla de Excel existente
1> Crea una nueva tabla de Excel
El código es el siguiente (ejemplo):
from openpyxl import Workbook
wb = Workbook() # 实例化
ws = wb.active #激活 worksheet
'''这里加上读写操作代码块'''
wb.save('workbook1.xlsx')#保存
2> Abra una hoja de Excel existente
from openpyxl import load_workbook
wb = load_workbook('workbook1.xlsx')#实例化
ws = wb.active#激活当前活跃的工作表,获取当前活跃的sheet对象
#或者是ws = wb['Sheet']
'''这里加上读写操作代码'''
wb.save('workbook1.xlsx')#保存文件
ws = wb.active se puede escribir como ws = wb ['Hoja'].
Estas dos funciones son las mismas para obtener un objeto de hoja. La
primera es obtener la hoja de trabajo actualmente activa como el objeto, y la segunda es obtener el hoja de trabajo en Excel por nombre. Objeto (los dos se pueden seleccionar y usar según las necesidades)
2. Escribir datos
1> Especificar celdas para completar
from openpyxl import Workbook
wb = Workbook()
ws = wb['Sheet']# 获取Sheet工作表对象
# 设置内容
ws['A1'] = 'Hello World!'#在A列第1行填入 Hello World!
import datetime#一般的import都放在前面,这里为了方便阅读
ws['A2'] = datetime.datetime.today()#在A2单元格填入现在的时间
wb.save('new_sample.xlsx')#保存
2> Completar línea por línea
from openpyxl import Workbook
wb1 = Workbook()
ws1 = wb1.active
ws1.append(['A1','B1','C1','D1'])
ws1.append([1,2,3,4,])
wb1.save('workbook1.xlsx')
El efecto es así
3. Lee los datos
En primer lugar, tengo que hablar de tres generadores:
filas: obtener celdas por fila (objeto de celda)
columnas: obtener celdas por columna (objeto de celda)
valores: obtener contenido de celda (datos de celda) por fila
Nota: Para los tres anteriores I Realmente no entiendo la definición específica del actor Los valores obtenidos por valores parecen ser tipos de tuplas.
Puede probar la impresión más para explorar el papel de cada uno, pero será indescriptible (capacidad limitada, no describirá -.-)
1> Imprime el contenido de una determinada celda
from openpyxl import load_workbook
wb1 = load_workbook('workbook1.xlsx')
ws1 = wb1.active
a1 = ws1['A1']
print(a1)#打印结果为<Cell 'Sheet'.A1> a1应该是为类里的一个cell对象
print(type(a1))#打印结果为<class 'openpyxl.cell.cell.Cell'>,
print(a1.value)#打印结果为 A1 (.value ->单元格的值。加上.value之后应该是打印 对象a1的属性值。)
wb1.save('workbook1.xlsx')
Nota: El a1 y su tipo aquí son la suposición del autor, esperando los comentarios de los grandes en el área de comentarios para responder ~~
2> Imprime el valor de una determinada columna
from openpyxl import load_workbook
wb1 = load_workbook('workbook1.xlsx')
ws1 = wb1.active
a = ws1['A']
for i in a:
print(i.value)
wb1.save('workbook1.xlsx')
3> Imprime el valor de cada celda (imprime línea por línea)
from openpyxl import load_workbook
wb1 = load_workbook('workbook1.xlsx')
ws1 = wb1.active
for cell in ws1.values:
print(*cell)
wb1.save('workbook1.xlsx')
El resultado de la impresión es el siguiente.
Nota: La celda es un tipo de tupla aquí, y se imprime * delante de ella cuando se imprime. No sé por qué se puede lograr este efecto. Por favor comente en la sección de comentarios ~~
para resumir
Preguntas y errores por favor señalar en la sección de comentarios.