python3.7 openpyxl 在excel單元格中寫入數(shù)據(jù)實例
本來我是想嘗試,選中某個多個單元格復制到同一個sheet的其他位置,找了很多資料沒有找到,目前只有這么一個辦法,如果有大佬看到,歡迎補充請教。
# encoding:utf-8 import pandas as pd import openpyxl xl = pd.read_excel(r"E:\55\CRM經(jīng)營分析表-10001741-1570416265044.xls") xl.to_excel(r"E:\55\crms.xlsx") wk = openpyxl.load_workbook(r"E:\55\crms.xlsx") #加載已經(jīng)存在的excel wk_name = wk.sheetnames wk_sheet = wk[wk_name[0]] wk_sheet.cell(row=2,column=2,value='大區(qū)') #在第二行,第二列下入“大區(qū)”數(shù)值 wk_sheet.cell(row=2,column=3,value='小區(qū)') 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對應(yīng)格式方法以及插入一行或者一列方法實現(xiàn))
前言
最近在做expansion of datset,所以需要把擴展的dataset寫入到excel中
我已經(jīng)矩陣運算全部搞定,最終輸出的是兩個輸出 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格式下計算的,模擬一下預(yù)處理
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")
結(jié)果生成一個excel,最后結(jié)果如下圖:

總結(jié)
openpyxl包用起來是真的方便,對于寫入,只需要建立一個LIST進行append就好了,如果excel為空的那append就從第一行開始遞增操作,你也可以理解為一個ws.append()操作就相當于寫入一行,如果excel為有數(shù)據(jù)的時候,那寫入操作從沒有數(shù)據(jù)的那一行開始寫入;這里也說一下本來想用Insert來著但是忽略了一個條件,就是insert有個前提條件就是For example to insert a row at 7 (before the existing row 7):,意思為插入之前你的數(shù)據(jù)的大小一定是比要插入的行數(shù)或者列數(shù)大的,也就是說插入只能插到里面,不能在邊緣插。
插入核心參考代碼
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]
讀取代碼

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
結(jié)果:

以上這篇python3.7 openpyxl 在excel單元格中寫入數(shù)據(jù)實例就是小編分享給大家的全部內(nèi)容了,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
Mac上Python使用ffmpeg完美解決方案(避坑必看!)
ffmpeg是一個強大的開源命令行多媒體處理工具,下面這篇文章主要給大家介紹了關(guān)于Mac上Python使用ffmpeg完美解決方案的相關(guān)資料,文中通過實例代碼介紹的非常詳細,需要的朋友可以參考下2023-02-02
解決python執(zhí)行不輸出系統(tǒng)命令彈框的問題
今天小編就為大家分享一篇解決python執(zhí)行不輸出系統(tǒng)命令彈框的問題,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2019-06-06
Python實現(xiàn)簡單的學生信息管理系統(tǒng)
這篇文章主要為大家詳細介紹了Python實現(xiàn)簡單的學生信息管理系統(tǒng),文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下2022-03-03
python numpy生成等差數(shù)列、等比數(shù)列的實例
今天小編就為大家分享一篇python numpy生成等差數(shù)列、等比數(shù)列的實例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-02-02
實例講解Python設(shè)計模式編程之工廠方法模式的使用
這篇文章主要介紹了Python設(shè)計模式編程之工廠方法模式的運用實例,文中也對Factory Method模式中涉及到的角色作出了解析,需要的朋友可以參考下2016-03-03
詳解pandas中iloc, loc和ix的區(qū)別和聯(lián)系
這篇文章主要介紹了詳解pandas中iloc, loc和ix的區(qū)別和聯(lián)系,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2020-03-03
詳解numpy矩陣的創(chuàng)建與數(shù)據(jù)類型
這篇文章主要介紹了詳解numpy矩陣的創(chuàng)建與數(shù)據(jù)類型,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2019-10-10

