У меня есть проблема, я должен извлечь данные из нескольких файлов XML и загрузить их в EXCEL-TABLE ... Я опишу лучше ---> В этот момент я могу проанализировать файл XML и через библиотеку xlsxwriter я могу создатьТаблица в Excel и вставьте значения только тогда, когда у меня есть больше XML-файлов, массив перезаписывается ...
for filename in filenames:
tree = ET.parse(filename)
root = tree.getroot()
PrimoFor=[] #Array dove vengono appesi tutti i dati estratti di un file
for DatiGeneraliDocumento in root.iter('DatiGeneraliDocumento'):
for FiglioDatiGeneraliDocumento in DatiGeneraliDocumento:
if(FiglioDatiGeneraliDocumento.tag=='TipoDocumento'):
if(FiglioDatiGeneraliDocumento.text=='TD04'):
Concatenazione=FiglioDatiGeneraliDocumento.text + str('(NotaCredito)')
PrimoFor.append(Concatenazione)
else:
Concatenazione=FiglioDatiGeneraliDocumento.text + str('(fattura)')
PrimoFor.append(Concatenazione)
print(FiglioDatiGeneraliDocumento.tag,FiglioDatiGeneraliDocumento.text)
for CedentePrestatore in root.iter('CedentePrestatore'):
for TagFiglioCedentePrestatore in CedentePrestatore:
for TagNipoteCedentePrestatore in TagFiglioCedentePrestatore:
for ProNipoteCedentePrestatore in TagNipoteCedentePrestatore:
if(ProNipoteCedentePrestatore.tag=='Denominazione'):
print(ProNipoteCedentePrestatore.tag,ProNipoteCedentePrestatore.text)
PrimoFor.append(ProNipoteCedentePrestatore.text)
for ImportoTotaleDocumento in root.iter('ImportoTotaleDocumento'):
print(ImportoTotaleDocumento.tag,ImportoTotaleDocumento.text)
PrimoFor.append(ImportoTotaleDocumento.text)
data=[PrimoFor]
worksheet.add_table('A1:Z3', {'data':data,
'autofilter': False,
'columns' : [{'header': 'Ragione sociale'},
{'header': 'Data Fattura'},
{'header': 'Numero Fattura'},
{'header': 'Filiale'},
{'header': 'Indirizzo'},
{'header': 'COD FILIALE'},
{'header': 'TIPODOC ft o NC'},
{'header': 'P IVA NEOSS'},
{'header': 'Totale Documento'},
{'header': 'Imponibile1'},
{'header': 'Aliquota1'},
{'header': 'lva1'},
{'header': 'Imponibile2'},
{'header': 'Aliquote2'},
{'header': 'lva2'},
{'header': 'Imponibile3'},
{'header': 'Aliquote3'},
{'header': 'lva3'},
{'header': 'da data competenza'},
{'header': 'a data competenza'},
{'header': 'imponibile ritenuta'},
{'header': 'flag minimi'},
{'header': 'mastro'},
{'header': 'capoconto'},
{'header': 'conto'},
{'header': 'sottoconto'},
]})
print(data)
workbook.close()
Этот код берет все файлы XML в папке от меня и извлекает данные из них,затем эти данные помещаются в массив и затем заполняются в таблице Excel.Проблема в том, что массив перезаписывается при каждой обработке XML-файла. Я покажу вам, как бы я хотел, чтобы результат был
Если я заполню массив кодом.
enter code heredata = [
['Apples', 10000, 5000, 8000, 6000],
['Pears', 2000, 3000, 4000, 5000],
['Bananas', 6000, 6000, 6500, 6000],
['Oranges', 500, 300, 200, 700],]
worksheet.add_table('A1:E4', {'data':data,
'autofilter': False,
'columns' : [{'header': 'Ragione sociale'},
{'header': 'Quarter 1'},
{'header': 'Quarter 2'},
{'header': 'Quarter 3'},
{'header': 'Quarter 4'},
]})
print(data)
workbook.close()
Это консольный вывод
[['' Apple ', 10000, 5000, 8000, 6000], [' Pears ', 2000, 3000, 4000, 5000], [' Bananas ',6000, 6000, 6500, 6000], ['Апельсины', 500, 300, 200, 700]]
, если я вставлю значение массива в код
Вместо этого это вывод консоли, если он динамически заполняет массив
[['TD01 (fattura)', 'Neoss Italia Srl', '2255.48']]
[['TD01 (fattura)', 'ASTIDENTAL DI SABBIONE SPA', '2717.60']] *
- это файл Excel, который выглядит следующим образом при динамическом заполнении массива
Подводя итог -> Я хотел бы, чтобы после того, как все файлы XML были проанализированы, данные будут вставлены в таблицу Excel один под другим.Извините текст так долго и прежде всего извините мой английский.Помоги мне :( !!