python实现将工作簿“跨境风险配置.xlsx”中的工作表“存续合约”和工作表“平仓合约”只复制数据,分别覆盖黏贴到工作簿“核对”中的工作表“存续合约”和工作表“平仓合约”
时间: 2023-05-20 20:00:58 浏览: 53
你可以使用 pandas 库来实现这个功能,具体代码如下:
```python
import pandas as pd
# 读取原始工作簿中的数据
df1 = pd.read_excel('跨境风险配置.xlsx', sheet_name='存续合约')
df2 = pd.read_excel('跨境风险配置.xlsx', sheet_name='平仓合约')
# 复制数据到新的工作簿中
with pd.ExcelWriter('核对.xlsx') as writer:
df1.to_excel(writer, sheet_name='存续合约', index=False)
df2.to_excel(writer, sheet_name='平仓合约', index=False)
```
这段代码会将原始工作簿中的“存续合约”和“平仓合约”两个工作表的数据复制到新的工作簿“核对”中的相应工作表中,只复制数据,不包括格式和样式。
相关问题
python实现将文件夹“台账”中的工作簿“跨境风险配置.xlsx”中的工作表“存续合约”和工作表“平仓合约”只复制数据,分别黏贴到文件夹“桌面”中的工作簿“核对”中的工作表“存续合约”和工作表“平仓合约”
以下是实现该功能的Python代码:
```python
import os
import shutil
import openpyxl
# 设置文件夹路径和文件名
folder_path = "台账"
file_name = "跨境风险配置.xlsx"
# 打开工作簿
workbook = openpyxl.load_workbook(os.path.join(folder_path, file_name))
# 复制“存续合约”工作表
sheet1 = workbook["存续合约"]
new_workbook = openpyxl.load_workbook("桌面/核对.xlsx")
new_sheet1 = new_workbook["存续合约"]
for row in sheet1.iter_rows(min_row=2):
new_sheet1.append([cell.value for cell in row])
new_workbook.save("桌面/核对.xlsx")
# 复制“平仓合约”工作表
sheet2 = workbook["平仓合约"]
new_sheet2 = new_workbook["平仓合约"]
for row in sheet2.iter_rows(min_row=2):
new_sheet2.append([cell.value for cell in row])
new_workbook.save("桌面/核对.xlsx")
# 关闭工作簿
workbook.close()
```
该代码首先使用`openpyxl`库打开“跨境风险配置.xlsx”工作簿,并复制其中的“存续合约”和“平仓合约”工作表。然后,它打开“核对.xlsx”工作簿,并将复制的数据粘贴到其中的“存续合约”和“平仓合约”工作表中。最后,它关闭了所有工作簿。请注意,您需要将文件夹路径和文件名设置为实际的值。
python实现将文件夹“桌面”中的工作簿“核对test”的工作表“存续合约”和工作表“平仓合约”的第二行开始只删除数据,保留公式,然后将文件夹“台账”中的工作簿“跨境风险配置.xlsx”中的工作表“存续合约”和工作表“平仓合约”只复制数据,分别黏贴到文件夹“桌面”中的工作簿“核对”中的工作表“存续合约”和工作表“平仓合约”,将第一列的单元格格式设为日期
你可以使用Python中的pandas库来实现这个任务。首先,你需要安装pandas库,然后使用以下代码:
```python
import pandas as pd
import os
# 设置文件夹路径
desktop_path = os.path.expanduser("~/Desktop")
ledger_path = os.path.join(desktop_path, "台账")
check_path = os.path.join(desktop_path, "核对")
# 读取文件
check_file = os.path.join(desktop_path, "核对test.xlsx")
ledger_file = os.path.join(ledger_path, "跨境风险配置.xlsx")
check_df = pd.read_excel(check_file, sheet_name=None)
ledger_df = pd.read_excel(ledger_file, sheet_name=None)
# 处理数据
for sheet_name in ["存续合约", "平仓合约"]:
# 删除数据,保留公式
check_df[sheet_name].iloc[1:, :] = check_df[sheet_name].iloc[1:, :].applymap(lambda x: "" if isinstance(x, (int, float)) else x)
# 复制数据
ledger_data = ledger_df[sheet_name].iloc[1:, :].copy()
# 将第一列的单元格格式设为日期
ledger_data.iloc[:, 0] = pd.to_datetime(ledger_data.iloc[:, 0])
# 将数据黏贴到核对表格中
check_df[sheet_name].iloc[1:, :] = ledger_data.values
# 保存文件
with pd.ExcelWriter(os.path.join(check_path, "核对test.xlsx")) as writer:
for sheet_name, df in check_df.items():
df.to_excel(writer, sheet_name=sheet_name, index=False)
```
这段代码会将文件夹“桌面”中的工作簿“核对test”的工作表“存续合约”和工作表“平仓合约”的第二行开始只删除数据,保留公式,然后将文件夹“台账”中的工作簿“跨境风险配置.xlsx”中的工作表“存续合约”和工作表“平仓合约”只复制数据,分别黏贴到文件夹“桌面”中的工作簿“核对”中的工作表“存续合约”和工作表“平仓合约”,并将第一列的单元格格式设为日期。最后,它会将修改后的文件保存到文件夹“桌面”中的工作簿“核对test.xlsx”中。