私のプロジェクトは、さまざまなExcelファイルを扱うことです。これを行うには、私は前のファイルのいくつかのデータを含む単一のファイルを作成したいと思います。このすべて私のデータベースを持っているために。目標は、これらのデータのグラフを取得することです。これはすべて自動的に行われます。PythonからExcelファイルを作成
私はこのプログラムをPythonで書いています。しかし、それを実行するには20分かかります。どのように私はそれを最適化できますか? さらに、いくつかのファイルには同じ変数があります。ですから、私は最終的なファイルで同じ変数が繰り返されないようにしたいと思います。実行する方法?あなたの将来の助けを
import os
import xlrd
import xlsxwriter
from xlrd import open_workbook
wc = xlrd.open_workbook("U:\\INSEE\\table-appartenance-geo-communes-16.xls")
sheet0=wc.sheet_by_index(0)
# création
with xlsxwriter.Workbook('U:\\INSEE\\Department61.xlsx') as bdd:
dept61 = bdd.add_worksheet('deprt61')
folder_path = "U:\\INSEE\\2013_telechargement2016"
col=8
constante3=0
lastCol=0
listeV = list()
for path, dirs, files in os.walk(folder_path):
for filename in files:
filename = os.path.join(path, filename)
wb = xlrd.open_workbook(filename, '.xls')
sheet1 = wb.sheet_by_index(0)
lastRow=sheet1.nrows
lastCol=sheet1.ncols
colDep=None
firstRow=None
for ligne in range(0,lastRow):
for col2 in range(0,lastCol):
if sheet1.cell_value(ligne, col2) == 'DEP':
colDep=col2
firstRow=ligne
break
if colDep is not None:
break
col=col-colDep-2-constante3
constante3=0
for nCol in range(colDep+2,lastCol):
constante=1
for ligne in range(firstRow,lastRow):
if sheet1.cell(ligne, colDep).value=='61':
Q=(sheet1.cell(firstRow, nCol).value in listeV)
if Q==False:
V=sheet1.cell(firstRow, nCol).value
listeV.append(V)
dept61.write(0,col+nCol,sheet1.cell(firstRow, nCol).value)
for ligne in range(ligne,lastRow):
if sheet1.cell(ligne, colDep).value=='61':
dept61.write(constante,col+nCol,sheet1.cell(ligne, nCol).value)
constante=constante+1
elif Q==True:
constante3=constante3+1 # I have a problem here. I would like to count the number of variables that already exists but I find huge numbers.
break
col=col+lastCol
bdd.close()
おかげであなたを:
は、ここに私のプログラムです。 :)
imhoの場合、 'filename for files:'の後ろにあるコードブロック全体を1レベルだけインデントする必要があります。ループは 'bdd.close()'を除いて意味があります。私はその編集をしました。それが間違っている場合は、再度編集してください。 – aneroid