python 学习笔记之 openpyxl

                  **python 通过openpyxl模块操作excel,将我们想要的数据写入excel。**

大概的过程:
1.加载工作簿,这里用到的是load_workbook方法。
2.通过sheetnames获取工作簿中所有工作表的表名,返回工作表对象。
3.获取工作表中的单元格,并向单元格中写入数据。
代码:

import openpyxl as op
import pandas as pd
import numpy as np
#加载工作簿
wb = op.load_workbook('F:/文件/python练习文件/20190918/'+'demo.xlsx')
##创建excel写入函数,其中result是要写入的数据,sheet是要写入的工作表
def to_excel(result,sheet):
    list=result.tolist()
    for i in range(len(list)):
        for j in range(result.shape[1]):
            if result[i][j] is not np.inf:
                #操作单元格循环写入列表中的数据
                sheet.cell(row=i + 1, column=j + 1).value = list[i][j]
            else:
                sheet.cell(row=i + 1, column=j + 1).value=''
    return sheet
 #获取所有工作表的表名
sheet_name=wb.sheetnames

#创建数据data
d1=np.array([[1,2,3],[3,4,5]])
d2=np.array([[6,7,8],[9,12,13]])
data=np.array([d1,d2])

#遍历工作表将data中的数据写入相应的工作表
for k in range(len(data)):
    to_excel(data[k],wb[sheet_name[k]])

print('导入完成')
#最后别忘了保存
wb.save('F:/文件/python练习文件/20190918/'+'demo.xlsx')

遇到的坑:
之前获取工作表时用的是get_sheet_names()方法

sheet_name=wb.get_sheet_names()

结果警告:

DeprecationWarning: Call to deprecated function get_sheet_names (Use wb.sheetnames).
  sheet_name=wb.get_sheet_names()
 

翻译一下是这个意思:

 警告:调用已弃用的函数get_sheet_names(使用wb.sheetnames)。sheet_name = wb.get_sheet_names ()

所以说这个函数已经弃用了,改成用sheetnames就ok了。

最后要注意要导的如数据格式,这里导入的是数组,如果要导入的数据是一个list类型的话的就不用写result.tolist()了,并且list的类型没有shape属性,所以要注意自己的数据类型。

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值