在Python中复制Excel文件并保持表格格式不变,可以使用`openpyxl`库。以下是一个简单的示例代码,展示了如何使用`openpyxl`来复制Excel文件:
```python
from openpyxl import load_workbook, Workbook
打开源Excel文件
src_file = 'source.xlsx'
src_workbook = load_workbook(filename=src_file)
创建一个新的Excel文件
dest_file = 'destination.xlsx'
dest_workbook = Workbook()
复制所有的工作表
for sheet_name in src_workbook.sheetnames:
src_sheet = src_workbook[sheet_name]
dest_sheet = dest_workbook.create_sheet(title=sheet_name)
复制工作表中的所有单元格和格式
for row in src_sheet.iter_rows(min_row=1, min_col=1, max_col=src_sheet.max_column, max_row=src_sheet.max_row):
for cell in row:
dest_sheet[cell.coordinate].value = cell.value
保存新的Excel文件
dest_workbook.save(dest_file)
这段代码会打开名为`source.xlsx`的源Excel文件,复制所有工作表到一个新的Excel文件`destination.xlsx`中,并保持原有的格式不变。
如果你需要复制特定的单元格区域,可以使用以下代码:
```python
from openpyxl import load_workbook
加载Excel文件
wb = load_workbook('source.xlsx')
ws = wb.active
指定要复制的单元格区域
source_area = 'A1:F16'
target_area = 'H23:M38'
创建source_cell_list和target_cell_list
source_cell_list = list(ws[source_area])
target_cell_list = list(ws[target_area])
复制单元格值
for i in range(len(source_cell_list)):
target_cell_list[i].value = source_cell_list[i].value
保存修改后的Excel文件
wb.save('modified_excel.xlsx')
这段代码会将`source.xlsx`中`A1:F16`区域的值复制到`H23:M38`区域。
请注意,这些代码示例是基于`openpyxl`库的,如果你还没有安装这个库,可以使用以下命令进行安装:
```
pip install openpyxl