--Opérer Excel (voir la dernière fois) --Comment collecter des données
--Comment collecter des données --Exemple d'acquisition de données pour chaque cellule: pour nombre dans la plage (maxCellNum) --Exemple d'acquisition de données en unités de ligne: pour la ligne dans ws.iter_rows (min_row = startDataRow):
Code que j'ai écrit
import sys
import os
import openpyxl
#Ce ne sont pas des données de ventes réelles.
#Je ne veux pas écrire directement.
targetExcel = r"..\data\Ventes.xlsx"
targetSheetName = "Ventes du mois dernier"
newFileName = "Nouveau.xlsx"
newSheetName = "test"
#À partir de A4
startDataRow = 4
startDataColumn = 1
#Ouvrez Excel
# data_only=True donne le résultat de l'expression. Sans cela, la formule elle-même peut être prise.
wb = openpyxl.load_workbook(targetExcel, data_only=True)
#Accéder aux données dans Excel
ws = wb[targetSheetName]
#Obtenez une liste vide
#Un tableau bidimensionnel avec un nombre indéterminé d'éléments ne peut pas être préparé ...
datalist = []
#Mettez les données de la ligne cible dans la liste à partir d'Excel ouvert
#Quoi qu'il en soit, je veux extraire les données ligne par ligne ...
#Déraisonnable
for row in ws.iter_rows(min_row = startDataRow):
#Ne serait-il pas possible de combiner chaque ligne séparée par des virgules?
tempStr = ""
for cellVal in row:
#Combinez 2 éléments et les suivants avec des virgules
if tempStr == "":
tempStr = str(cellVal.value)
else:
tempStr = tempStr + ',' + str(cellVal.value)
datalist.append(tempStr)
print(datalist)
#Bon nouvel Excel
wb2 = openpyxl.Workbook()
ws2 = wb2.worksheets[0]
ws2.title = newSheetName
#Je veux le mettre dans la même position que l'Excel d'origine
#Je vais lister les gars qui sont joints par des virgules
#Si vous voulez le ramener, vous pouvez avoir envie de diviser les éléments de la liste.
splitList = []
for rowNum in range(len(datalist)):
splitList = datalist[rowNum].split(",")
for colNum in range(len(splitList)):
ws2.cell(startDataRow + rowNum, startDataColumn + colNum).value = splitList[colNum]
#Hozon
wb2.save(newFileName)
--À propos de la spécification de chemin
Code que j'ai écrit
#Dernière fois
targetExcel = r"../data/Ventes.xlsx"
#cette fois
targetExcel = r"..\data\Ventes.xlsx"
Postscript: le titre a été mis à jour.
Recommended Posts