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之玩转字符串(2)更新篇
Sep 28 Python
跟老齐学Python之传说中的函数编写条规
Oct 11 Python
Eclipse中Python开发环境搭建简单教程
Mar 23 Python
python去掉行尾的换行符方法
Jan 04 Python
python 系统调用的实例详解
Jul 11 Python
pandas 根据列的值选取所有行的示例
Nov 07 Python
python按行读取文件并找出其中指定字符串
Aug 08 Python
PyTorch加载预训练模型实例(pretrained)
Jan 17 Python
Python序列化pickle模块使用详解
Mar 05 Python
Python标准库:内置函数max(iterable, *[, key, default])说明
Apr 25 Python
Pycharm调试程序技巧小结
Aug 08 Python
python tqdm实现进度条的示例代码
Nov 10 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面向对象全攻略 (一) 面向对象基础知识
2009/09/30 PHP
删除无限分类并同时删除它下面的所有子分类的方法
2010/08/08 PHP
php学习之简单计算器实现代码
2011/06/09 PHP
php session_start()出错原因分析及解决方法
2013/10/28 PHP
ThinkPHP3.2.2的插件控制器功能简述
2014/07/09 PHP
php实现的验证码文件类实例
2015/06/18 PHP
一个简单的JS鼠标悬停特效具体方法
2013/06/17 Javascript
js 获取radio按钮值的实例
2013/08/17 Javascript
jquery实现在光标位置插入内容的方法
2015/02/05 Javascript
jQuery中next方法用法实例
2015/04/24 Javascript
微信小程序 wx.request(object) API详解及实例代码
2016/09/30 Javascript
Vue.js结合bootstrap实现分页控件
2017/03/10 Javascript
使用JavaScript根据图片获取条形码的方法
2017/07/04 Javascript
Vue.js搭建移动端购物车界面
2020/06/28 Javascript
微信小程序实现MUI数字输入框效果
2018/01/31 Javascript
vue下history模式刷新后404错误解决方法
2018/08/18 Javascript
vue项目中使用scss的方法步骤
2019/05/16 Javascript
python根据出生日期获得年龄的方法
2015/03/31 Python
Python的Django框架中设置日期和字段可选的方法
2015/07/17 Python
Python实现向服务器请求压缩数据及解压缩数据的方法示例
2017/06/09 Python
Python排序搜索基本算法之归并排序实例分析
2017/12/08 Python
python3+PyQt5+Qt Designer实现扩展对话框
2018/04/20 Python
Python django搭建layui提交表单,表格,图标的实例
2019/11/18 Python
sklearn和keras的数据切分与交叉验证的实例详解
2020/06/19 Python
用opencv给图片换背景色的示例代码
2020/07/08 Python
使用Python通过oBIX协议访问Niagara数据的示例
2020/12/04 Python
详解appium自动化测试工具(monitor、uiautomatorviewer)
2021/01/27 Python
Django如何重置migration的几种情景
2021/02/24 Python
html5组织文档结构_动力节点Java学院整理
2017/07/11 HTML / CSS
html5教程制作简单画板代码分享
2013/12/04 HTML / CSS
Radley英国官网:英国莱德利小狗包
2019/03/21 全球购物
What's the difference between deep copy and shallow copy? (深拷贝与浅拷贝有什么区别)
2015/11/10 面试题
医学专业毕业生个人的求职信
2013/12/04 职场文书
中学音乐课教学反思
2016/02/18 职场文书
基于HTML十秒做出淘宝页面
2021/10/24 HTML / CSS
详细聊聊vue中组件的props属性
2021/11/02 Vue.js