鱼C论坛

 找回密码
 立即注册
查看: 1800|回复: 4

[已解决]把一个excel的一列数据复制到另外一个excel中

[复制链接]
发表于 2020-9-23 15:16:01 | 显示全部楼层 |阅读模式
20鱼币
本帖最后由 JoseM 于 2020-9-23 15:17 编辑

如标题描述,要把一个excel中的一列数据copy到另外一个excel中,下面是我的代码, 但是这种方式要处理好多个几千行的excel文件,需要运行的时间很长,有什么更好的方式吗? 有没有直接以一列作为一个整体的复制,力求运行时间小。

  1. import os
  2. import openpyxl
  3. from openpyxl import Workbook
  4. from openpyxl import load_workbook
  5. old_xlsx = load_workbook('C:\\Desktop\\111.xlsx')
  6. new_xlsx = load_workbook('C:\\Desktop\\222.xlsx')
  7. old_xlsx.sheet = old_xlsx['Sheet1']
  8. new_xlsx.sheet = new_xlsx['Sheet1']
  9. sheet = old_xlsx.active
  10. A_Raw = []
  11. a = sheet.max_row
  12. b = sheet.max_column
  13. i = 1
  14. j = 1
  15. while j < b:       
  16.    while i < a :
  17.          A_Raw.insert(i-1,old_xlsx_sheet.cell(i,j).value)
  18.          new_xlsx.cell(i,j).value=A_Raw[i-1]
  19.          new_xlsx.save('C:\\Desktop\\222.xlsx')
  20.          i = i+1
  21. j = j+1
复制代码


实际这个程序里面还有一些计算才复制,目前先探索如何加快处理速度
最佳答案
2020-9-23 15:16:02
  1. while j < b:      
  2.    while i < a :
  3.          A_Raw.insert(i-1,old_xlsx_sheet.cell(i,j).value)
  4.          new_xlsx.cell(i,j).value=A_Raw[i-1]
  5.          new_xlsx.save('C:\\Desktop\\222.xlsx')
  6.          i = i+1
复制代码

不明白你这个为啥获取一个格子的数据你就生成一次new_xlsx? 你把new_xlsx.save('C:\\Desktop\\222.xlsx') 放到 整个while循环的外面试试

最佳答案

查看完整内容

不明白你这个为啥获取一个格子的数据你就生成一次new_xlsx? 你把new_xlsx.save('C:\\Desktop\\222.xlsx') 放到 整个while循环的外面试试
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2020-9-23 15:16:02 | 显示全部楼层    本楼为最佳答案   
  1. while j < b:      
  2.    while i < a :
  3.          A_Raw.insert(i-1,old_xlsx_sheet.cell(i,j).value)
  4.          new_xlsx.cell(i,j).value=A_Raw[i-1]
  5.          new_xlsx.save('C:\\Desktop\\222.xlsx')
  6.          i = i+1
复制代码

不明白你这个为啥获取一个格子的数据你就生成一次new_xlsx? 你把new_xlsx.save('C:\\Desktop\\222.xlsx') 放到 整个while循环的外面试试
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2020-9-23 15:54:24 | 显示全部楼层
fall_bernana 发表于 2020-9-23 15:42
不明白你这个为啥获取一个格子的数据你就生成一次new_xlsx? 你把new_xlsx.save('C:\\Desktop\\222.xlsx') ...

Good Job!
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2020-9-23 15:54:47 | 显示全部楼层
是不是pandas代码更简洁呢?
直接读取这一列,然后to_excel
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2020-9-23 16:26:04 | 显示全部楼层
rsj0315 发表于 2020-9-23 15:54
是不是pandas代码更简洁呢?
直接读取这一列,然后to_excel

不太会用pandas
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-6-27 14:00

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表