openpyxl库学习笔记
#### openpyxl库学习笔记**1.Excel读取操作**
- 获取Excel文件:
~~~python
from openpyxl import load_workbook #导入相关函数
path = r"文件路径\文件名.xlsx".replace('\\', '/') #设置文件路径
data = load_workbook(path) #获取workbook对象
~~~
- 获取工作表Sheet:
```python
# 获得所有sheet的名称
print(data.get_sheet_names())
# 根据sheet名字获得sheet
sheet = data.get_sheet_by_name('Sheet1') #这种方法官方已经不推荐使用了
sheet = data["Sheet1"] #正确操作
```
- 获取单元格:
```python
# 获取某个单元格的值,观察excel发现也是先字母再数字的顺序,即先列再行
b4 = sheet['B4']#b4为<Cell 'Sheet1'.B4>
#要获取B4单元格里的内容,操作如下:
print(b4.value)
#获取b4单元格的列、行、以及内容
print(f'({b4.column}, {b4.row}) is {b4.value}') # 返回的数字就是int型
# 除了用下标的方式获得,还可以用cell函数, 换成数字,这个表示B2
b4_too = sheet.cell(row=4, column=2)
print(b4_too.value)
```
- 获取最大行和最大列
```python
print(table.max_row,table.max_column)
```
- 迭代行和列
sheet.rows为生成器, 里面是每一行的数据,每一行又由一个tuple包裹。
sheet.columns类似,不过里面是每个tuple是每一列的单元格
```python
#获取每一行后,再获取每一行的每个单元格的内容
for row in sheet.rows:
for cell in row:
print(cell.value)
#获取每一列后,再获取每一列的每个单元格的内容
for column in sheet.columns:
for cell in column:
print(cell.value)
```
- 单元格切片操作:
```python
#获取单元格'B1'到"B44"的内容
for i in table['B1':"B44"]:#i是一个tutple对象
for j in i:#所以再次对i进行迭代
print(j.value)
#获取单元格'A1'到"B44"的内容
for i in table['A1':"B44"]:
for j in i:
print(j.value)
```
**2.Excel写入操作:**
```python
# 直接给单元格赋值也可以
sheet['A1'] = 'good'
#给'C2'到'C44'单元格写入数字 1
for i in table['C2':'C44']:
for cell in i:
cell.value = "1"
```
**3.单元格样式设置:**
```python
from openpyxl.styles import Font, colors, Alignment #导入相关函类
#字体:
bold_itatic_24_font = Font(name='等线', size=24, italic=True, color=colors.RED, bold=True)
sheet['A1'].font = bold_itatic_24_font
#上面的代码指定了等线24号加粗斜体,字体颜色红色。直接使用cell的font属性,将Font对象赋值给它。
#对齐方式:
# 设置B1中的数据垂直居中和水平居中
sheet['B1'].alignment = Alignment(horizontal='center', vertical='center')
#上面代码直接使用cell的属性aligment,这里指定垂直居中和水平居中。
#设置行高和列宽:
# 第2行行高
sheet.row_dimensions.height = 40
# C列列宽
sheet.column_dimensions['C'].width = 30
```
**4.最后保存文件**
```python
sheet.save(path)
``` 正好在用。及时雨! 赶紧保存,当成自己的学习笔记 感谢分享 感谢分享 点赞 收藏 关闭一气呵成 vba不香吗,不用装ide,不用下载库。 vba与openpyxl,哪个简单好学?哪个功能强大?初中文化学哪个见效快?主要是处理excel学哪个好?
多谢!
页:
[1]