美文网首页
python 自动化办公(xlrd、xlwt读取和新建表格)

python 自动化办公(xlrd、xlwt读取和新建表格)

作者: 清汤饺子 | 来源:发表于2019-04-15 13:10 被阅读0次

参考博客1

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


image.png

得到的文件:


image.png
image.png

下面代码需要修改的地方:


image.png
image.png
#批量得到文件目录
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')

相关文章

网友评论

      本文标题:python 自动化办公(xlrd、xlwt读取和新建表格)

      本文链接:https://www.haomeiwen.com/subject/iontwqtx.html