python 不使用padas 从1.xlsx文件第二行开始读取第一列的数据,每十列拆分为一组数,分别写入以已存在的2.xsl文件为模板创建的文件的第一列,从第二行开始
时间: 2024-09-19 21:02:12 浏览: 41
面向人工智能的Python程序设计课程 Python从基础入门到进阶教程10 padas入门.pptx 共109页.ppt
在Python中,可以使用`openpyxl`库来处理Excel文件,而不使用`pandas`。假设你想从`1.xlsx`文件的第二行开始,并按照每十列拆分数据,然后将这些数据写入到`2.xlsx`模板文件的新行中,你可以这样做:
首先,需要安装`openpyxl`,如果还没安装,可以使用`pip install openpyxl`命令。
```python
import os
from openpyxl import load_workbook
# 加载源文件和模板文件
source_wb = load_workbook('1.xlsx')
template_wb = load_workbook('2.xlsx')
# 选择源工作表和模板工作表
source_ws = source_wb.active
template_ws = template_wb.active
# 获取源文件数据
data_start_row = 2 # 开始行
columns_to_split = 10 # 每隔几列拆分
column_index = 1 # 起始列索引(通常Excel中的A列是第1列)
source_data = []
# 遍历源文件数据并按需拆分
for row in range(data_start_row, len(source_ws['A'])):
row_data = []
for _ in range(0, len(source_ws['A'][row].value), columns_to_split):
row_data.extend([source_ws.cell(column=column_index, row=row).value])
column_index += columns_to_split + 1 # 移动到下一组
source_data.append(row_data)
# 清空模板工作表第二行开始的数据
template_ws.iter_rows(min_row=2).delete()
# 将源数据写入模板文件
for i, row_values in enumerate(source_data[1:], start=1): #跳过第一行(因为它是源文件的标题行)
new_row = template_ws.max_column + 1 # 计算新行的起始位置
for value in row_values:
template_ws.cell(row=new_row, column=1).value = value # 写入数据
new_row += 1 # 更新行号
# 保存更改
source_wb.save('1.xlsx') # 如果想保留原始文件,可以在这里修改名称
template_wb.save('2.xlsx')
```
阅读全文