python实现将文件夹“桌面”中的工作簿“核对test”的工作表“存续合约”和工作表“平仓合约”的第二行开始只删除数据,保留公式,然后将文件夹“台账”中的工作簿“跨境风险配置.xlsx”中的工作表“存续合约”和工作表“平仓合约”只复制数据,分别黏贴到文件夹“桌面”中的工作簿“核对”中的工作表“存续合约”和工作表“平仓合约”,将工作簿“核对test”的工作表“存续合约”和“平仓合约”的第一列的单元格格式设为日期
时间: 2023-05-18 11:05:53 浏览: 67
以下是实现这个任务的 Python 代码:
```python
import openpyxl
import os
# 删除数据,保留公式
def clear_data(sheet):
for row in sheet.iter_rows(min_row=2):
for cell in row:
if cell.data_type == 'n':
cell.value = None
# 复制数据
def copy_data(source_sheet, target_sheet):
for row in source_sheet.iter_rows(min_row=2):
target_row = [cell.value for cell in row]
target_sheet.append(target_row)
# 将第一列的单元格格式设为日期
def set_date_format(sheet):
for row in sheet.iter_rows(min_row=1, max_row=2):
for cell in row:
if cell.column == 1:
cell.number_format = 'yyyy-mm-dd'
# 执行任务
desktop_folder = os.path.expanduser('~/Desktop')
ledger_folder = os.path.join(desktop_folder, '台账')
workbook1 = openpyxl.load_workbook(os.path.join(desktop_folder, '核对test.xlsx'))
sheet1_1 = workbook1['存续合约']
sheet1_2 = workbook1['平仓合约']
clear_data(sheet1_1)
clear_data(sheet1_2)
workbook2 = openpyxl.load_workbook(os.path.join(ledger_folder, '跨境风险配置.xlsx'))
sheet2_1 = workbook2['存续合约']
sheet2_2 = workbook2['平仓合约']
copy_data(sheet2_1, sheet1_1)
copy_data(sheet2_2, sheet1_2)
set_date_format(sheet1_1)
set_date_format(sheet1_2)
workbook1.save(os.path.join(desktop_folder, '核对test.xlsx'))
```
这段代码会执行以下操作:
1. 打开桌面上的核对test.xlsx文件,获取其中的存续合约和平仓合约两个工作表。
2. 在这两个工作表中,从第二行开始删除数据,保留公式。
3. 打开台账文件夹中的跨境风险配置.xlsx文件,获取其中的存续合约和平仓合约两个工作表。
4. 将跨境风险配置.xlsx文件中的存续合约和平仓合约两个工作表中的数据复制到核对test.xlsx文件中的存续合约和平仓合约两个工作表中。
5. 将核对test.xlsx文件中的存续合约和平仓合约两个工作表中的第一列单元格的格式设为日期。
6. 保存核对test.xlsx文件。
阅读全文