python 不使用padas 从1.xlsx文件第二行开始读取第一列的数据,每十列写入一个以已存在的2.xsl文件为模板创建的文件的第一列,从第二行开始
时间: 2024-09-19 21:02:12 浏览: 40
面向人工智能的Python程序设计课程 Python从基础入门到进阶教程10 padas入门.pptx 共109页.ppt
在Python中,如果你想要从`1.xlsx`文件的第二行开始读取数据,并将每十列数据写入一个新的Excel文件,该新文件基于`2.xlsx`模板,可以使用`openpyxl`库来处理Excel文件操作。这里是步骤:
首先,你需要安装`openpyxl`,如果还没有安装,可以使用pip安装:
```bash
pip install openpyxl
```
然后,你可以使用下面的代码片段来完成这个任务:
```python
import openpyxl
from openpyxl.utils.dataframe import dataframe_to_rows
# 读取第一个文件
wb1 = openpyxl.load_workbook('1.xlsx')
sheet1 = wb1.active
start_row = 2 # 从第二行开始
# 读取第二个文件作为模板
wb2 = openpyxl.load_workbook('2.xlsx')
template_sheet = wb2.active
# 创建一个新的工作簿用于写入结果
new_wb = openpyxl.Workbook()
new_sheet = new_wb.active
# 使用dataframe_to_rows将Excel数据转换成迭代器
for row in dataframe_to_rows(sheet1.iter_rows(min_row=start_row), index=False):
# 如果到达了需要写入新文件的点,保存并继续
if (row_number := sheet1.row_dimensions[row.coordinate].row) % 10 == 0:
new_sheet.append([cell.value for cell in row])
new_wb.save(f'result_{row_number}.xlsx') # 每十行保存一次
# 将剩余的部分追加到新文件的最后一行
if row_number % 10 != 0:
new_sheet.append([cell.value for cell in row])
new_wb.save(f'result_{row_number}.xlsx')
# 关闭所有工作簿
wb1.close()
wb2.close()
new_wb.close()
```
在这个例子中,我们假设`1.xlsx`的每一行都是一个列表,且文件结构与`2.xlsx`相似。代码会按照每十列一组的方式将数据写入新的Excel文件。
阅读全文