Je travaille sur un programme pour diviser des fichiers Excel en sections de 1000. Je n'arrive pas à l'obtenir pour créer un second fichier Excel, car xlsxwriter ne crée pas la seconde fichier.XLSXWriter refuse de créer un deuxième fichier Excel
from os.path import join, dirname, abspath
from xlrd.sheet import ctype_text
import csv
import os
import sys
import xlrd
import xlsxwriter
import xlwt
file_paths = sys.argv[1:]
draganddrop = ''.join(file_paths)
beginGrab = 0
counting = 0
endGrab = 1000
thousands = 0
if draganddrop == "":
fileName = raw_input("\nInput the file with extension\n>")
else:
fileName = draganddrop
stopPoint = fileName.index('.')
prepRev = fileName[stopPoint:]
preName = fileName[:stopPoint]
if prepRev == ".csv":
excelFile = xlsxwriter.Workbook(preName + '.xlsx')
worksheet = excelFile.add_worksheet()
with open(fileName,'rb') as f:
content = csv.reader(f)
for index_col, data_in_col in enumerate(content):
for index_row, data_in_cell in enumerate(data_in_col):
worksheet.write(index_col,index_row,data_in_cell)
excelFile.close()
fileName = (preName + '.xlsx')
delMe = 1
print("Temporary Convert to xlsx done.\n")
stopPoint = fileName.index('.')
prepRev = fileName[0:stopPoint]
fname = join(dirname(abspath(__file__)), fileName)
xl_workbook = xlrd.open_workbook(fname)
sheet_names = xl_workbook.sheet_names()
xl_sheet = xl_workbook.sheet_by_name(sheet_names[0])
book = xlwt.Workbook(encoding="utf-8")
worksheet = book.add_sheet("Results", cell_overwrite_ok=True)
workbook = xlrd.open_workbook(fileName)
for sheet in workbook.sheets():
for row in range(sheet.nrows):
row = int(row)
if(int(row)>1000):
subDivide = int(row)/1000
while(thousands != subDivide + 1):
thousands = thousands + 1
counting = 0
totalName = preName + "_" + str(thousands) + ".xlsx"
print(totalName)
excelFile = xlsxwriter.Workbook(str(totalName))
worksheet = excelFile.add_worksheet()
with open(totalName,'rb') as f:
col = xl_sheet.col_slice(0,1,10101010)
for idx, cell_obj in enumerate(col, start=beginGrab):
counting = counting + 1
if(counting == 1000):
break
cell_type_str = ctype_text.get(cell_obj.ctype, 'unknown type')
cell_obj_str = str(cell_obj)
telePhone = (cell_obj_str[7:19])
worksheet.write(idx+1, 0, "1" + telePhone)
worksheet.write(0,0, "Telephone Number")
beginGrab = thousands * 1000
endGrab = beginGrab + 1000
excelFile.close()
excelFile = None
else:
print("Mate, this is Tiny!")
print ("Ding! Job Done!")
J'ai été capricieuse en caoutchouc cela et je ne peux pas trouver où je suis en faute.
EDIT:
RÉSOLU !!
En créant une feuille puis en la fermant, le programme peut alors la saisir. Je vais probablement faire un problème de git à ce sujet. En le fermant, on peut le voir alors qu'il contient toujours la même information.
excelFile = xlsxwriter.Workbook(totalName)
worksheet = excelFile.add_worksheet()
with open(fileName,'rb') as f:
pouvez-vous signaler un retraçage de l'erreur que vous obtenez? (J'ai répondu, mais je ne suis pas sûr que c'est le seul problème que vous avez) –
'Fichier" /home/nmenard/Documents/Haircuttery/FileSplit.py ", ligne 62, en' 'avec open (totalName, 'rb') comme f: ' ' IOError: [Errno 2] Aucun fichier ou répertoire: 'OyVey_2.xlsx'' Est-ce vrai? –
GarnetSunset
@GarnetSunset que faire si vous utilisez le chemin d'accès complet, comme '/ mon/fichier/OyVey_2.xlsx'. Etes-vous sûr que ce fichier existe et existe (avec l'extension _2?) – David542