Python: xlsxwriter(XW)

C, C++, Pascal, Assembly, Raspberry, Java, Matlab, Python, BASIC, SQL, PHP, etc.
Användarvisningsbild
Repaterion
Inlägg: 538
Blev medlem: 4 februari 2011, 00:57:32
Ort: Gustavsfors (Lite till vänster om världens utkant)

Python: xlsxwriter(XW)

Inlägg av Repaterion »

Tjenesen!

Har ett märkligt beteende från XW och det är att jag tar data från en csv-fil och skriver denna till en Excel-fil via XW.
Allt dete rullar på utan problem, men... jag får på y-axel drygt 250 serier av samma data, så jag kan avmarkera 254 av dessa och grafen ser lika bra ut oavsett.
Det spelar ingen roll i sig för själva visande av datan, men diagrammet i Excel blir trögt.

datan består i dagsläget av ca 2500 rader, men kan bli mångt mycket större mätdata i form av decimala nummer.
Likt detta
5,6
8,7
6,5
etc

Kan detta ha att agöra med att det körs i loopar?
Diagrammen:
Skärmbild 2023-10-05 150941.png
Skärmbild 2023-10-05 151025.png

Kod: Markera allt

import pandas as pd
import xlsxwriter

row = 2
col = 0
#### Laddar csv-filen till en "dataram"
panda_read_csv = pd.read_csv("CSV FIL IN", delimiter=",", dialect="excel", index_col="date")
#### Sökväg till filen för excel.
workbook = xlsxwriter.Workbook('FIL UT')
worksheet_chart = workbook.add_worksheet('chart')
worksheet_data = workbook.add_worksheet('data')
c =  list(panda_read_csv.columns)


graf = workbook.add_chart({'type': 'line'})
        # Sätter storleken på grafen/diagrammet i pixlar
graf.set_size({'width': 960, 'height': 300})
graf.set_title({'name': "XXX"})
        # name text på axel // min/max sätter värdena för skalan för Y-axeln.
graf.set_y_axis({'name': 'dBm', 'min': 6, 'max':12})
graf.set_x_axis({'name': 'Number of tested'})


x_axis = panda_read_csv['XXX']
length = len((panda_read_csv['XXX']))

# COG-data
for c in panda_read_csv["XXX"].replace(".",","):
    print(c)
    worksheet_data.write(f'A{row}', c)
                                    #=Sheet1!$A$2:$A$2508 - {length}
    graf.add_series({'values': '=data!$A$2:$A$2508', 'fill':{'color':'#454545'}})
    graf.add_series({'category': x_axis}) #'=Sheet1!$B$2:$B$2508'
    
    row +=1
row = 2
# Veckonummer
for c in panda_read_csv["Weeks"]:
        worksheet_data.write(f'B{row}', c)
        row += 1
# Datum
row = 2

'''
for c in panda_read_csv["date"]:
        worksheet.write(f'C{row}', c)
        row +=1
'''

worksheet_chart.insert_chart('B3', graf)

#worksheet.write(int(panda_read_csv['XXX]))

workbook.close()

Du har inte behörighet att öppna de filer som bifogats till detta inlägg.
Användarvisningsbild
swesysmgr
Inlägg: 14188
Blev medlem: 28 mars 2009, 06:56:43
Ort: Göteborg

Re: Python: xlsxwriter(XW)

Inlägg av swesysmgr »

Varför inte importera .csv filen i Excel istället om du ändå skall öppna den där? Har senaste data alltid samma filnamn kan du ha den fast länkad som datakälla så att diagrammet uppdateras direkt när du öppnar arbetsboken.
Skriv svar