鱼C论坛

 找回密码
 立即注册
查看: 1088|回复: 10

[已解决]python批量处理excel文件内容

[复制链接]
发表于 2020-4-28 15:50:56 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
目的是要建立一个5000*5500的二维数组,存储的内容是:一个文件夹中5000个.xls文件,提取每个excel的第二列(共有5500行)数据存入。
python小白不知道该如何顺序从这个文件夹(文件都是顺序的,如图命名)中提取第二列的数据

trace_data=[[] for i in range(5000)]
{
        顺序读取excel文件中第二列数据并依次存入二维数组,
        例如,trace_data[0][0]表示的应该是'Trace000001.xls'中第二列第一个数据
}
最佳答案
2020-4-28 16:19:20
掺水甜豆浆 发表于 2020-4-28 16:16
骚瑞 我是要从某个文件路径中读取 比如:path="D:\wt\data" 路径该加在哪呀?
from xlrd import open_workbook
res=[open_workbook(r"D:\wt\data\Trace%06d.xls"%i).sheet_by_index(0).col_values(1) for i in range(1,5001)]
这样就可以了
1.PNG
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2020-4-28 16:02:40 | 显示全部楼层
球球了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-4-28 16:06:51 | 显示全部楼层
本帖最后由 永恒的蓝色梦想 于 2020-4-28 16:19 编辑

你看看行不行?
from xlrd import open_workbook
res=[open_workbook(r"D:\wt\data\Trace%06d.xls"%i).sheet_by_index(0).col_values(1) for i in range(1,5001)]
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-4-28 16:14:31 | 显示全部楼层
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-4-28 16:16:27 | 显示全部楼层

骚瑞 我是要从某个文件路径中读取 比如:path="D:\wt\data" 路径该加在哪呀?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-4-28 16:19:20 | 显示全部楼层    本楼为最佳答案   
掺水甜豆浆 发表于 2020-4-28 16:16
骚瑞 我是要从某个文件路径中读取 比如:path="D:\wt\data" 路径该加在哪呀?
from xlrd import open_workbook
res=[open_workbook(r"D:\wt\data\Trace%06d.xls"%i).sheet_by_index(0).col_values(1) for i in range(1,5001)]
这样就可以了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-4-28 16:38:37 | 显示全部楼层
掺水甜豆浆 发表于 2020-4-28 16:16
骚瑞 我是要从某个文件路径中读取 比如:path="D:\wt\data" 路径该加在哪呀?

能看到吗
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-4-28 16:48:55 | 显示全部楼层

刚在电脑出了点小问题程序中止了 在重新运行稍稍等一会哈
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-4-28 16:54:32 | 显示全部楼层

可行! 十分感谢
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-4-28 17:16:17 | 显示全部楼层
本帖最后由 ouyunfu 于 2020-4-28 17:29 编辑

最佳答案只提供了读取的第一步,我这里帮你编写了实现你所需全部要求的全代码。。。哎,伤心。。。
import xlrd
book = Workbook(encoding='utf-8')#创建汇总的表
sheet = book.add_sheet('Sheet1') #创建一个sheet
for i in range(1,5001):
    filename='Trace'+str(i).zfill(6)+'.xls'
    wb_temp=xlrd.open_workbook(filename) #打开待复制的表
    sheet1=wb_temp.sheet_by_index(0) #根据索引获取第一个sheet
    nrows=sheet1.nrows #获取行数
    for j in range(nrows):
        sheet.write(j,i-1,label=sheet1.cell_value(j,1))
book.save('all.xls')
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-4-28 17:46:31 | 显示全部楼层
ouyunfu 发表于 2020-4-28 17:16
最佳答案只提供了读取的第一步,我这里帮你编写了实现你所需全部要求的全代码。。。哎,伤心。。。

啊哦 还是很感谢
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-11-26 22:19

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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