用openpyxl读取特定列的特定两行
时间: 2023-05-21 09:02:02 浏览: 78
可以使用openpyxl中的load_workbook函数加载Excel文件,然后使用worksheet对象的cell函数获取特定单元格的值。以下是读取特定列的特定两行的示例代码:
```python
from openpyxl import load_workbook
# 加载Excel文件
wb = load_workbook('example.xlsx')
# 选择工作表
ws = wb.active
# 读取特定列的特定两行
col = 'B'
row1 = 2
row2 = 3
value1 = ws[col + str(row1)].value
value2 = ws[col + str(row2)].value
print(value1, value2)
```
这段代码将读取example.xlsx文件中第2行和第3行B列的值,并将它们打印出来。
相关问题
openpyxl 通过行号和列号读取单元格
可以使用 openpyxl 中的 `cell` 函数来读取单元格。
首先,需要导入 `load_workbook` 和 `cell` 函数:
```python
from openpyxl import load_workbook
from openpyxl.utils import cell
```
然后,可以使用 `load_workbook` 函数加载 Excel 文件,然后选择要读取的工作表:
```python
# 加载 Excel 文件
workbook = load_workbook('example.xlsx')
# 选择工作表
worksheet = workbook['Sheet1']
```
接下来,可以使用 `cell` 函数来读取特定单元格。该函数需要两个参数:行号和列号。例如,要读取第一行第一列的单元格,可以这样写:
```python
# 读取第一行第一列的单元格
value = worksheet[cell(1, 1)].value
```
同样地,可以使用行号和列号的变量来读取任何单元格:
```python
# 读取第三行第二列的单元格
row = 3
column = 2
value = worksheet[cell(row, column)].value
```
注意,行号和列号都是从 1 开始的,而不是从 0 开始的。
用python将excel中第3列的数据从第二行读取并替换word中表格的特定信息,并保存多个word文档
可以使用 `openpyxl` 和 `python-docx` 两个库来实现这个功能。
首先,我们需要安装这两个库:
```
pip install openpyxl python-docx
```
接下来,我们需要打开 Excel 文件并读取第三列的数据。假设我们的 Excel 文件名为 `data.xlsx`,工作表名为 `Sheet1`,第三列的数据从第二行开始,代码如下:
```python
import openpyxl
# 打开 Excel 文件
wb = openpyxl.load_workbook('data.xlsx')
# 获取工作表
ws = wb['Sheet1']
# 读取第三列的数据,从第二行开始
data = [cell.value for cell in ws['C2:C{}'.format(ws.max_row)]]
```
接下来,我们需要打开 Word 文件并替换表格中的特定信息。假设我们要替换表格中第二行第二列的内容,代码如下:
```python
import docx
# 打开 Word 文件
doc = docx.Document('template.docx')
# 获取表格
table = doc.tables[0]
# 替换表格中的特定信息
table.cell(1, 1).text = '替换后的内容'
# 保存 Word 文件
doc.save('output.docx')
```
最后,我们需要将这个过程封装成一个函数,并循环处理多个 Excel 文件和多个 Word 文件,代码如下:
```python
import openpyxl
import docx
def replace_data(excel_file, sheet_name, col_num, row_start, word_file, table_index, row_num, col_num, new_value):
# 打开 Excel 文件
wb = openpyxl.load_workbook(excel_file)
# 获取工作表
ws = wb[sheet_name]
# 读取第三列的数据,从第二行开始
data = [cell.value for cell in ws['C{}:C{}'.format(row_start, ws.max_row)]]
# 打开 Word 文件
doc = docx.Document(word_file)
# 获取表格
table = doc.tables[table_index]
# 循环替换表格中的特定信息
for i in range(row_num):
table.cell(i, col_num).text = new_value.format(data[i])
# 保存 Word 文件
doc.save('output_{}.docx'.format(excel_file[:-5]))
# 处理多个 Excel 文件和多个 Word 文件
excel_files = ['data1.xlsx', 'data2.xlsx']
word_files = ['template1.docx', 'template2.docx']
for excel_file in excel_files:
for word_file in word_files:
replace_data(excel_file, 'Sheet1', 3, 2, word_file, 0, 5, 1, '第{}行第三列的数据')
```
上面的代码将会读取 `data1.xlsx` 和 `data2.xlsx` 中第三列的数据,并将其替换到 `template1.docx` 和 `template2.docx` 中第一个表格的前五行第二列中,并保存为 `output_data1.docx` 和 `output_data2.docx`。