Python读取和修改Excel文件(.xlsx)

Python读取和修改Excel文件(.xlsx)
工作中需要批量修改excel文件内容,尝试写个小工具,节省重复劳动,第一次写小工具,在摸索中尝试。
已知环境:Python2.0环境+pycharm
1.import openpyxl
安装openpyxl包
方法一:手动下载
(1).openpyxl的下载地址:
https://pypi.python.org/pypi/openpyxl
下载到我自己的文件夹,我存在D:\software\python packages里。
(2).cmd进入上述文件夹里,我使用的命令是:
cd d/ D:\software\python packages
(3).pip install
直接pip install这个压缩文件即可,不要试图去解压。我使用的命令是:
pip install openpyxl-2.6.2.tar.gz
(4) import openpyxl
方法二:直接使用pip命令下载安装(使用管理员账号运行cmd)Python读取和修改Excel文件(.xlsx)_第1张图片
2.创建工作薄和获取工作薄

# coding=utf-8    
    import openpyxl
    import os
    path = 'C:\Users\Think\Desktop\python\testFile.xlsx' #定义路径
    #判断该路径下是否有该文件,如果有删除
    if os.path.exists(path):
        os.remove(path)
    
    # 创建一个workbook对象,相当于创建了一个Excel文件
    workbook = openpyxl.Workbook()
    #wb = openpyxl.Workbook(encoding='UTF-8')
    
    #获取当前活跃的worksheet,默认就是第一个worksheet
    worksheet = workbook.active
    worksheet.title = "mysheet"

3.创建新的工作表

worksheet2 = workbook.create_sheet("test", 1) #插在工作薄末尾,sheet名字为test

4.将数据写入工作表

#写入数据
Title = ['学号', '姓名', '成绩']
Name = ['张三', '王五', '赵柳', '李四', '王武', '周瑜', '郑旺']
StuNo = ['001', '002', '003', '004', '005', '006', '007']
Score = [100, 78, 89, 98, 64, 70, 95]

#写入第一行
for i in range(len(Title)):
    worksheet.cell(1, i+1, Title[i])
    
#从第二行开始写入第一列
for i in range(len(Name)):
    worksheet.cell(i+2, 1, Name[i])
    
#从第二行开始写入第二列
for i in range(len(StuNo)):
    worksheet.cell(i+2, 2, StuNo[i])
    
#从第二行开始写入第三列
for i in range(len(Score)):
    worksheet.cell(i+2, 3, Score[i])

5.保存工作薄

  #保存到工作薄
    workbook.save(path)

6.修改已存在的工作薄——插入一列
将前面保存的testFile.xlsx作为我们要修改的表格,我们计划在最前面插入一列“编号”,如下所示:

#插入一列
workbook = openpyxl.load_workbook(path)
worksheet = workbook.worksheets[0]

#在第一列之前插入一列
worksheet.insert_cols(1)
for index, row in enumerate(worksheet.rows):
    if index == 0:
        row[0].value = "编号"
    else:
        row[0].value = index
workbook.save(path)

运行结果如下:
Python读取和修改Excel文件(.xlsx)_第2张图片
心得:代码还是要多敲,一些看似很简单的东西,尤其是那些觉得大眼一看就知道怎么回事的,写出来才能发现问题,比如:我刚开始写的时候,会碰到很多等号前后没有加空格这种类似的的语法错误。

你可能感兴趣的:(#,学习记录)