1.安装python
window安装一定要勾选环境变量
安装教程
2.pip3安装插件
pip3 install xlrd
pip3 install xlwt
pip3 install pandas
如果安装失败试下设置代理
xlrd模块对xls文件进行读操作:pip3 --proxy http://web-proxy.tencent.com:8080 install xlrd
xlwt模块对xls文件进行写操作:pip3 --proxy http://web-proxy.tencent.com:8080 install xlwt
os模块是内置的,不需要安装
(测试发现xlrd/xlwt可以处理xlsx文件)
注意运行.py文件时,不能打开需要处理的文件
3.运行代码
进入项目目录:cd D:\myInfo\learn\python\excel
运行python文件:python excel.py
注意mac下会自动安装python2,要运行python3,需要python3 excel.py
得到的文件:
下面代码需要修改的地方:
#批量得到文件目录
import os
path = "D:\myInfo\learn\python\excel\DataSource" #文件夹目录
files= os.listdir(path) #得到文件夹下所有的文件名称
import xlrd #引入模块
#打开文件,获取excel文件的workbook(工作簿)对象
workbook=[];
for i in range(len(files)): #循环打印每一行
workbook.append(xlrd.open_workbook(path+'/'+files[i]) )#文件路径
#print(workbook)
#获取所有sheet的名字
sheetNames=[];
for i in range(len(workbook)):
sheetNames.append(workbook[i].sheet_names())
#print(sheetNames)
#通过sheet名获得sheet对象
worksheet=[];
for i in range(len(workbook)):
for j in range(len(sheetNames[i])):
worksheet.append(workbook[i].sheet_by_name(sheetNames[i][j]))
#print(worksheet)
#对sheet对象进行操作
name=[];
for i in range(len(worksheet)):
name.append(worksheet[i].name)#获取表的姓名
#print(name)
# 获取该表总列数
ncols=[];
for i in range(len(worksheet)):
ncols.append(worksheet[i].ncols)
#print(ncols)
#新建空列表(二维数组)
lists = []
colName = ['站点地址','详细说明'];
#按行或列方式获得工作表的数据
def getColList( str ):
arr = [];
for i in range(len(ncols)):
for j in range(ncols[i]): #循环打印每一列
col_values = worksheet[i].col_values(j)
if col_values[0] == str:
for k in range(len(col_values)):
print(k,col_values[k])
if(not(k ==0 and col_values[k] in arr)):
arr.append(col_values[k]);
return arr;
for i in range(len(colName)):
lists.append(getColList(colName[i]));
for i in range(len(lists)):
print(lists[i])
# 生成表格
# 导入xlwt模块
import xlwt
# 创建一个Workbook对象,相当于创建了一个Excel文件
book=xlwt.Workbook(encoding="utf-8",style_compression=0)
# 创建一个sheet对象,一个sheet对象对应Excel文件中的一张表格。
sheet = book.add_sheet('test01', cell_overwrite_ok=True)
# 其中的test是这张表的名字,cell_overwrite_ok,表示是否可以覆盖单元格,其实是Worksheet实例化的一个参数,默认值是False
# 向表test中添加数据
# 填入第一行
for index in range(len(lists)):
for i in range(0,len(lists[index])):
sheet.write(i,index,lists[index][i])
#设置表格宽度
for i in range(len(ncols)):
sheet.col(i).width=256*20
# 最后,将以上操作保存到指定的Excel文件中
book.save('dist\\test1.xls')