python3.7 openpyxl 在excel单元格中写入数据实例


Posted in Python onSeptember 01, 2020

本来我是想尝试,选中某个多个单元格复制到同一个sheet的其他位置,找了很多资料没有找到,目前只有这么一个办法,如果有大佬看到,欢迎补充请教。

# encoding:utf-8
import pandas as pd
import openpyxl
xl = pd.read_excel(r"E:\55\CRM经营分析表-10001741-1570416265044.xls")
xl.to_excel(r"E:\55\crms.xlsx")
wk = openpyxl.load_workbook(r"E:\55\crms.xlsx") #加载已经存在的excel
wk_name = wk.sheetnames
wk_sheet = wk[wk_name[0]]
 
wk_sheet.cell(row=2,column=2,value='大区') #在第二行,第二列下入“大区”数值
wk_sheet.cell(row=2,column=3,value='小区')
wk_sheet.cell(row=2,column=4,value='店铺编码')
wk_sheet.cell(row=2,column=5,value='店铺名称')
 
wk.save(r"E:\55\s.xlsx")

补充知识:【openpyxl】python中对Excel进行写入操作,写入一列或者一行(从excel中读出label和feature对应格式方法以及插入一行或者一列方法实现)

前言

最近在做expansion of datset,所以需要把扩展的dataset写入到excel中

我已经矩阵运算全部搞定,最终输出的是两个输出 labels 和 features

自己整理为以下格式

label = [[0],
     [1],
     [2],
     [3]
     ]
feature = [
      [0.1, 0.2, 0.3, 0.4, 0.5],
      [0.11, 0.21, 0.31, 0.41, 0.51],
      [0.6, 0.7, 0.8, 0.9, 1.00],
      [1.1, 1.2, 1.3, 1.4, 1.5],
      ]

解决方案

先是准备用python带的xlrd xlrd 等包来操作感觉真的不太行

换思路,用第三方包openpyxl来操作

pip install openpyxl

官方文档在这里

https://openpyxl.readthedocs.io/en/stable/index.html

代码

废话不多说,show you my code

# coding=utf-8
from openpyxl import Workbook
import numpy as np

wb = Workbook()

ws = wb.create_sheet("che")
label = [[0],
     [1],
     [2],
     [3]
     ]
feature = [
      [0.1, 0.2, 0.3, 0.4, 0.5],
      [0.11, 0.21, 0.31, 0.41, 0.51],
      [0.6, 0.7, 0.8, 0.9, 1.00],
      [1.1, 1.2, 1.3, 1.4, 1.5],
      ]
#这个地方之所以 变成numpy格式是因为在很多时候我们都是在numpy格式下计算的,模拟一下预处理
label = np.array(label)
feature = np.array(feature)

label_input = []
for l in range(len(label)):
  label_input.append(label[l][0])

ws.append(label_input)
for f in range(len(feature[0])):

  ws.append(feature[:, f].tolist())
wb.save("chehongshu.xlsx")

结果生成一个excel,最后结果如下图:

python3.7 openpyxl 在excel单元格中写入数据实例

总结

openpyxl包用起来是真的方便,对于写入,只需要建立一个LIST进行append就好了,如果excel为空的那append就从第一行开始递增操作,你也可以理解为一个ws.append()操作就相当于写入一行,如果excel为有数据的时候,那写入操作从没有数据的那一行开始写入;这里也说一下本来想用Insert来着但是忽略了一个条件,就是insert有个前提条件就是For example to insert a row at 7 (before the existing row 7):,意思为插入之前你的数据的大小一定是比要插入的行数或者列数大的,也就是说插入只能插到里面,不能在边缘插。

插入核心参考代码

for col in range(len(label)):

  print col
  ws.insert_cols(col+1)

  for index, row in enumerate(ws.rows):
    #print row
    
     if index == 0:
      #row[col+1].value = label[col][0]
      print "label"
      print label[col]
    else:
      print "feature"
      print feature[col][index-1]
      #row[col+1].value = feature[col][index-1]

读取代码

python3.7 openpyxl 在excel单元格中写入数据实例

def create_data_expansion(path, sheet):
  data_init = pd.read_excel(path, sheet)
  # print data_init
  data_df = pd.DataFrame(data_init)
  print data_df
  data_df_transponse = data_df.T
  label_expansion = np.array(data_df_transponse.index)
  label_expansion_l = []
  for l in range(len(label_expansion)):
    label_expansion_l.append([l])
  feature_expansion = np.array(data_df_transponse)
  label_expansion = np.array(label_expansion_l)

  return label_expansion, feature_expansion

if __name__ == "__main__":
  path_name = "excel_demo.xlsx"
  sheet_name = "11"
  label, feature = create_data_expansion(path_name, sheet_name)
  print label
  print feature

结果:

python3.7 openpyxl 在excel单元格中写入数据实例

以上这篇python3.7 openpyxl 在excel单元格中写入数据实例就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
Python set常用操作函数集锦
Nov 15 Python
浅谈python正则的常用方法 覆盖范围70%以上
Mar 14 Python
Django Admin实现三级联动的示例代码(省市区)
Jun 22 Python
通过Python模块filecmp 对文件比较的实现方法
Jun 29 Python
Django安装配置mysql的方法步骤
Oct 15 Python
详解python websocket获取实时数据的几种常见链接方式
Jul 01 Python
wxPython绘图模块wxPyPlot实现数据可视化
Nov 19 Python
python3 字符串知识点学习笔记
Feb 08 Python
python爬虫实例之获取动漫截图
May 31 Python
面向新手解析python Beautiful Soup基本用法
Jul 11 Python
pandas数据分组groupby()和统计函数agg()的使用
Mar 04 Python
Python中生成随机数据安全性、多功能性、用途和速度方面进行比较
Apr 14 Python
python 将列表里的字典元素合并为一个字典实例
Sep 01 #Python
Python如何截图保存的三种方法(小结)
Sep 01 #Python
Python连接mysql方法及常用参数
Sep 01 #Python
python3:excel操作之读取数据并返回字典 + 写入的案例
Sep 01 #Python
Python+Selenium实现自动化的环境搭建的步骤(图文)
Sep 01 #Python
Django如何批量创建Model
Sep 01 #Python
python 解决selenium 中的 .clear()方法失效问题
Sep 01 #Python
You might like
PHP的栏目导航程序
2006/10/09 PHP
PHP判断是否有Get参数的方法
2014/05/05 PHP
Gambit vs ForZe BO3 第一场 2.13
2021/03/10 DOTA
Uglifyjs(JS代码优化工具)入门 安装使用
2020/04/13 Javascript
分享精心挑选的12款优秀jQuery Ajax分页插件和教程
2012/08/09 Javascript
使用jQuery实现更改默认alert框体
2015/04/13 Javascript
JavaScript中函数表达式和函数声明及函数声明与函数表达式的不同
2015/11/15 Javascript
利用jQuery对无序列表排序的简单方法
2016/10/16 Javascript
浅谈javascript中的三种弹窗
2016/10/21 Javascript
基于javascript实现按圆形排列DIV元素(二)
2016/12/02 Javascript
巧用Javascript的逻辑运算符
2016/12/02 Javascript
深入理解ES7的async/await的用法
2017/09/09 Javascript
详解jQuery中的easyui
2018/09/02 jQuery
在vue中多次调用同一个定义全局变量的实例
2018/09/25 Javascript
Angular4 Select选择改变事件的方法
2018/10/09 Javascript
js中null与空字符串""的区别讲解
2019/01/17 Javascript
js的Object.assign用法示例分析
2020/03/05 Javascript
[40:57]TI4 循环赛第二日 iG vs EG
2014/07/11 DOTA
[00:02]DOTA2新版本使用PA至宝后暴击展示
2014/11/19 DOTA
Python实现批量读取图片并存入mongodb数据库的方法示例
2018/04/02 Python
pymongo中聚合查询的使用方法
2019/03/22 Python
利用python开发app实战的方法
2019/07/09 Python
Python性能分析工具Profile使用实例
2019/11/19 Python
Python 3 使用Pillow生成漂亮的分形树图片
2019/12/24 Python
Python在centos7.6上安装python3.9的详细教程(默认python版本为2.7.5)
2020/10/15 Python
使用PyCharm官方中文语言包汉化PyCharm
2020/11/18 Python
意大利文具和办公产品在线商店:Y-Office
2020/02/27 全球购物
搬家公司的创业计划书
2014/01/01 职场文书
《望洞庭》教学反思
2014/02/16 职场文书
《少年王冕》教学反思
2014/04/11 职场文书
商业计算机应用专业自荐书
2014/06/09 职场文书
仲裁协议书
2014/09/26 职场文书
禁毒主题班会教案
2015/08/14 职场文书
学习杨善洲同志先进事迹心得体会
2016/01/23 职场文书
如何使用PostgreSQL进行中文全文检索
2021/05/27 PostgreSQL
Python编写冷笑话生成器
2022/04/20 Python