python实现将文件夹“桌面”中的工作簿“核对test”的工作表“存续合约”和工作表“平仓合约”的第二行开始只删除数据,保留公式,然后将文件夹“台账”中的工作簿“跨境风险配置.xlsx”中的工作表“存续合约”和工作表“平仓合约”只复制数据,分别黏贴到文件夹“桌面”中的工作簿“核对”中的工作表“存续合约”和工作表“平仓合约”,将第一列的单元格格式设为日期

时间: 2023-05-18 21:05:49 浏览: 24
你可以使用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”中。

相关推荐

以下是实现这个任务的 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文件。
以下是实现该功能的Python代码: python import os import shutil import openpyxl # 定义要操作的文件夹和工作簿、工作表 desktop_folder = os.path.join(os.path.expanduser("~"), "Desktop") source_folder = os.path.join(desktop_folder, "跨境") source_file = os.path.join(source_folder, "跨境风险配置.xlsx") source_sheets = ["存续合约", "平仓合约"] target_file = os.path.join(desktop_folder, "核对test.xlsx") target_sheets = ["存续合约", "平仓合约"] # 删除目标工作表中的数据 target_wb = openpyxl.load_workbook(target_file) for sheet_name in target_sheets: sheet = target_wb[sheet_name] for row in sheet.iter_rows(min_row=2): for cell in row: cell.value = None target_wb.save(target_file) # 复制源工作表中的数据到目标工作表 source_wb = openpyxl.load_workbook(source_file) for sheet_name in source_sheets: source_sheet = source_wb[sheet_name] target_sheet = target_wb[sheet_name] for row in source_sheet.iter_rows(min_row=2): target_row = [cell.value for cell in row] target_sheet.append(target_row) target_wb.save(target_file) # 将目标工作表中的第一列单元格格式设为日期 for sheet_name in target_sheets: sheet = target_wb[sheet_name] for cell in sheet["A"]: cell.number_format = "yyyy/mm/dd" target_wb.save(target_file) 请注意,这段代码假定源工作簿和目标工作簿中的工作表都已经存在,并且它们的表头行是第一行,数据从第二行开始。如果这些假设不成立,代码可能需要进行适当的修改。
### 回答1: 可以使用 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) 这段代码会将原始工作簿中的“存续合约”和“平仓合约”两个工作表的数据复制到新的工作簿“核对”中的相应工作表中,只复制数据,不包括格式和其他内容。 ### 回答2: 要实现将工作簿“跨境风险配置.xlsx”中的工作表“存续合约”和工作表“平仓合约”只复制数据,分别覆盖粘贴到工作簿“核对”中的工作表“存续合约”和工作表“平仓合约”,可以使用Python中的openpyxl库。 首先,需要安装openpyxl库。可以在终端中运行以下命令进行安装: pip install openpyxl 接下来,可以使用以下代码来实现任务: python from openpyxl import load_workbook # 加载原始工作簿 wb_source = load_workbook('跨境风险配置.xlsx') # 加载目标工作簿 wb_target = load_workbook('核对.xlsx') # 获取原始工作表 ws_source1 = wb_source['存续合约'] ws_source2 = wb_source['平仓合约'] # 获取目标工作表 ws_target1 = wb_target['存续合约'] ws_target2 = wb_target['平仓合约'] # 清空目标工作表中的数据 ws_target1.delete_rows(1, ws_target1.max_row) ws_target2.delete_rows(1, ws_target2.max_row) # 复制数据 for row in ws_source1.iter_rows(): new_row = [cell.value for cell in row] ws_target1.append(new_row) for row in ws_source2.iter_rows(): new_row = [cell.value for cell in row] ws_target2.append(new_row) # 保存目标工作簿 wb_target.save('核对.xlsx') 以上代码使用openpyxl库加载原始工作簿和目标工作簿,并获取原始工作表和目标工作表。然后,通过遍历原始工作表中的行,并使用列表推导式复制每行的数据。最后,清空目标工作表中的数据,并将复制的数据追加到目标工作表中。最终,保存目标工作簿。 请确保将代码中的文件名替换为实际的文件名,并将“核对.xlsx”文件作为目标工作簿提前创建好。 ### 回答3: 要实现将工作簿“跨境风险配置.xlsx”中的工作表“存续合约”和工作表“平仓合约”只复制数据,分别覆盖黏贴到工作簿“核对”中的工作表“存续合约”和工作表“平仓合约”,可以使用Python中的pandas库来处理Excel文件。下面是实现方法的示例代码: python import pandas as pd # 读取原始工作簿和目标工作簿 source_filename = '跨境风险配置.xlsx' target_filename = '核对.xlsx' source_workbook = pd.ExcelFile(source_filename) target_workbook = pd.ExcelWriter(target_filename) # 复制并覆盖存续合约工作表数据 source_sheet_name1 = '存续合约' target_sheet_name1 = '存续合约' df1 = source_workbook.parse(source_sheet_name1) df1.to_excel(target_workbook, target_sheet_name1, index=False) # 复制并覆盖平仓合约工作表数据 source_sheet_name2 = '平仓合约' target_sheet_name2 = '平仓合约' df2 = source_workbook.parse(source_sheet_name2) df2.to_excel(target_workbook, target_sheet_name2, index=False) # 保存目标工作簿 target_workbook.save() print("数据已复制并覆盖到目标工作簿") 在上述代码中,首先使用pd.ExcelFile()方法读取原始工作簿,并使用pd.ExcelWriter()方法创建目标工作簿。然后,通过parse()方法将工作表的数据读取为DataFrame对象,再使用to_excel()方法将DataFrame对象写入目标工作簿的对应工作表中。最后,使用save()方法保存目标工作簿。 注意:在运行代码之前,确保已经安装了pandas库。可以使用pip install pandas命令进行安装。
您可以使用Python中的pandas库来读取和合并多个Excel工作簿。以下是一个示例代码,可以将多个Excel工作簿合并为一个工作表,并保持原有的格式: python import pandas as pd # 设置要读取的工作簿文件名和工作表名称 file_names = ['file1.xlsx', 'file2.xlsx', 'file3.xlsx'] sheet_name = 'Sheet1' # 定义一个空的DataFrame,用于存储所有工作簿数据 all_data = pd.DataFrame() # 逐一读取每个工作簿文件,并将数据添加到all_data中 for file_name in file_names: # 读取工作簿文件中的数据 df = pd.read_excel(file_name, sheet_name=sheet_name) # 将读取的数据添加到all_data中 all_data = all_data.append(df, ignore_index=True) # 将合并后的数据保存到一个新的Excel工作簿中 writer = pd.ExcelWriter('merged_file.xlsx') all_data.to_excel(writer, sheet_name=sheet_name, index=False) writer.save() 在这个示例代码中,首先定义了要读取的工作簿文件名和工作表名称,然后使用pandas库的read_excel()函数逐一读取每个工作簿文件中的数据,并将其添加到一个空的DataFrame对象中。最后,使用pandas库的to_excel()函数将合并后的数据保存到一个新的Excel工作簿中。 需要注意的是,这种方法可能会导致合并后的工作表格式不一致,因为不同的工作簿可能具有不同的格式和样式。如果需要保持每个工作簿的格式和样式不变,可能需要使用其他一些库和方法,例如openpyxl库或xlwings库。
可以使用Python中的pandas和openpyxl库来实现这个任务。以下是代码示例: python import os import pandas as pd from openpyxl import Workbook, load_workbook from datetime import datetime # 选择文件夹路径 folder_path = input("请输入文件夹路径:") # 获取所有Excel文件的路径 file_paths = [] for root, dirs, files in os.walk(folder_path): for file in files: if file.endswith(".xlsx"): file_paths.append(os.path.join(root, file)) # 创建新工作簿 new_wb = Workbook() # 遍历所有Excel文件,将所有工作表复制到新工作簿中 for file_path in file_paths: wb = load_workbook(file_path) for sheet_name in wb.sheetnames: sheet = wb[sheet_name] df = pd.DataFrame(sheet.values) df.columns = df.iloc[0] df = df.iloc[1:] sheet_data = [df.columns.tolist()] + df.values.tolist() new_sheet = new_wb.create_sheet(sheet_name) for row in sheet_data: new_sheet.append(row) # 保存新工作簿至桌面 desktop_path = os.path.join(os.path.expanduser("~"), "Desktop") today = datetime.today().strftime('%Y%m%d') new_file_name = f"业务台账{today}.xlsx" new_file_path = os.path.join(desktop_path, new_file_name) new_wb.save(new_file_path) print(f"已将文件夹内所有工作簿内的所有工作表移动至新工作簿并保存至桌面:{new_file_path}") 这个代码会提示你输入文件夹路径,然后会遍历文件夹内所有的Excel文件,将所有工作表复制到一个新的工作簿中,并将新工作簿保存至桌面,文件名为“业务台账”加上当天日期的格式。

最新推荐

Python实现合并同一个文件夹下所有txt文件的方法示例

主要介绍了Python实现合并同一个文件夹下所有txt文件的方法,涉及Python针对文件的遍历、读取、写入等相关操作技巧,需要的朋友可以参考下

python利用openpyxl拆分多个工作表的工作簿的方法

主要介绍了python利用openpyxl拆分多个工作表的工作簿的方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧

使用Python实现从各个子文件夹中复制指定文件的方法

今天小编就为大家分享一篇使用Python实现从各个子文件夹中复制指定文件的方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧

python实现将两个文件夹合并至另一个文件夹(制作数据集)

主要介绍了python实现将两个文件夹合并至另一个文件夹(制作数据集),具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧

Python实现将sqlite数据库导出转成Excel(xls)表的方法

主要介绍了Python实现将sqlite数据库导出转成Excel(xls)表的方法,结合实例形式分析了Python针对sqlite数据库的连接、读取及使用写操作包(xlwt)生成Excel表的相关实现技巧,需要的朋友可以参考下

代码随想录最新第三版-最强八股文

这份PDF就是最强⼋股⽂! 1. C++ C++基础、C++ STL、C++泛型编程、C++11新特性、《Effective STL》 2. Java Java基础、Java内存模型、Java面向对象、Java集合体系、接口、Lambda表达式、类加载机制、内部类、代理类、Java并发、JVM、Java后端编译、Spring 3. Go defer底层原理、goroutine、select实现机制 4. 算法学习 数组、链表、回溯算法、贪心算法、动态规划、二叉树、排序算法、数据结构 5. 计算机基础 操作系统、数据库、计算机网络、设计模式、Linux、计算机系统 6. 前端学习 浏览器、JavaScript、CSS、HTML、React、VUE 7. 面经分享 字节、美团Java面、百度、京东、暑期实习...... 8. 编程常识 9. 问答精华 10.总结与经验分享 ......

事件摄像机的异步事件处理方法及快速目标识别

934}{基于图的异步事件处理的快速目标识别Yijin Li,Han Zhou,Bangbang Yang,Ye Zhang,Zhaopeng Cui,Hujun Bao,GuofengZhang*浙江大学CAD CG国家重点实验室†摘要与传统摄像机不同,事件摄像机捕获异步事件流,其中每个事件编码像素位置、触发时间和亮度变化的极性。在本文中,我们介绍了一种新的基于图的框架事件摄像机,即SlideGCN。与最近一些使用事件组作为输入的基于图的方法不同,我们的方法可以有效地逐个事件处理数据,解锁事件数据的低延迟特性,同时仍然在内部保持图的结构。为了快速构建图,我们开发了一个半径搜索算法,该算法更好地利用了事件云的部分正则结构,而不是基于k-d树的通用方法。实验表明,我们的方法降低了计算复杂度高达100倍,相对于当前的基于图的方法,同时保持最先进的性能上的对象识别。此外,我们验证了我们的方�

下半年软件开发工作计划应该分哪几个模块

通常来说,软件开发工作可以分为以下几个模块: 1. 需求分析:确定软件的功能、特性和用户需求,以及开发的目标和约束条件。 2. 设计阶段:根据需求分析的结果,制定软件的架构、模块和接口设计,确定开发所需的技术和工具。 3. 编码实现:根据设计文档和开发计划,实现软件的各项功能和模块,编写测试用例和文档。 4. 测试阶段:对软件进行各种测试,包括单元测试、集成测试、功能测试、性能测试、安全测试等,确保软件的质量和稳定性。 5. 发布和部署:将软件打包发布,并进行部署和安装,确保用户可以方便地使用软件。 6. 维护和更新:对软件进行维护和更新,修复漏洞和Bug,添加新的特性和功能,保证

数据结构1800试题.pdf

你还在苦苦寻找数据结构的题目吗?这里刚刚上传了一份数据结构共1800道试题,轻松解决期末挂科的难题。不信?你下载看看,这里是纯题目,你下载了再来私信我答案。按数据结构教材分章节,每一章节都有选择题、或有判断题、填空题、算法设计题及应用题,题型丰富多样,共五种类型题目。本学期已过去一半,相信你数据结构叶已经学得差不多了,是时候拿题来练练手了,如果你考研,更需要这份1800道题来巩固自己的基础及攻克重点难点。现在下载,不早不晚,越往后拖,越到后面,你身边的人就越卷,甚至卷得达到你无法想象的程度。我也是曾经遇到过这样的人,学习,练题,就要趁现在,不然到时你都不知道要刷数据结构题好还是高数、工数、大英,或是算法题?学完理论要及时巩固知识内容才是王道!记住!!!下载了来要答案(v:zywcv1220)。

开集域自适应方法及其在靶点发现中的应用

9322基于开集域自适应的新靶点发现Taotao Jing< $,Hongfu LiuXiang,and Zhengming Ding<$†美国杜兰大学计算机科学系‡美国布兰代斯大学Michtom计算机科学学院网址:tjing@tulane.edu,hongfuliu@brandeis.edu,网址:www.example.com,zding1@tulane.edu摘要开集域自适应算法(OSDA)认为目标域包含了在外部源域中未观察到的新类别的样本不幸的是,现有的OSDA方法总是忽略了看不见的类别的信息的需求,并简单地将它们识别为“未知”集合而没有进一步的这促使我们通过探索底层结构和恢复其不可解释的语义属性来更具体地理解未知类别。在本文中,我们提出了一种新的框架,以准确地识别目标领域中的可见类别,并有效地恢复未见过的类别的语义属性具体而言,结构保持部分对齐开发,通过域不变的特征学习识别看到的基于视觉图的属性传播是为了通过视觉语义映射将可见属�