我有一个问题,我应该从多个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()
这是控制台输出
[['Apples',10000,5000,8000,6000],['Pears',2000,3000,4000,5000],['Bananas',6000,6000,6500,6000],['Oranges' ,500、300、200、700]]
if i insert the value of array in code
如果是动态填充数组,则为控制台输出
[[''TD01(fattura)','Neoss Italia S.r.l.','2255.48']]
[[['TD01(fattura)','ASTIDENTAL DI SABBIONE S.P.A.','2717.60']]
是excel文件是这样的吗 when I fill the array dynamically
总结->我希望一旦所有XML文件都被解析了,数据将被插入到excel表中,而另一个则插入其中。请原谅这么长时间,首先请原谅我的英语。帮帮我:( !!