这段代码没有保留原来的格式
时间: 2023-12-11 15:05:35 浏览: 103
非常抱歉,我误解了你的意思。如果你想要保留原始工作表的格式,可以使用Python的openpyxl模块。以下是一个示例代码:
```python
from openpyxl import load_workbook
# 读取原始工作表
workbook = load_workbook(filename='original.xlsx')
# 获取指定工作表
worksheet = workbook['Sheet1']
# 按照指定条件拆分工作表
grouped = {}
for row in worksheet.iter_rows(min_row=2, values_only=True):
key = row[0]
if key not in grouped:
grouped[key] = []
grouped[key].append(row)
# 创建新的工作表
for name, rows in grouped.items():
new_workbook = load_workbook(filename='template.xlsx')
new_worksheet = new_workbook.active
# 复制原始工作表的内容和格式
for row_idx, row in enumerate(rows, start=2):
for col_idx, cell_value in enumerate(row, start=1):
new_worksheet.cell(row=row_idx, column=col_idx, value=cell_value)._style = worksheet.cell(row=row_idx, column=col_idx)._style
# 保存新的工作表
new_workbook.save(f'{name}.xlsx')
```
在这个示例中,我们首先使用`openpyxl`模块的`load_workbook`方法读取原始工作表,并获取指定的工作表。然后,我们使用`iter_rows`方法遍历每一行,并按照指定的条件将行分组。接下来,我们创建一个新的工作表,并复制原始工作表的内容和格式到新的工作表中。我们使用了`_style`属性来复制单元格的格式。最后,我们将新的工作表保存到不同的文件中。
需要注意的是,我们在示例代码中使用了一个名为`template.xlsx`的模板文件,用于保存新的工作表的格式。在实际使用中,你需要根据自己的需求创建一个模板文件。此外,这个示例代码只复制了原始工作表的内容和格式,如果你需要复制更多的属性(如行高、列宽等),需要进一步修改代码。
阅读全文