2017-03-29 1 views
2

Ich bin nicht ahnungslos, wie man Zeilenspalte in A1-Notation und verwenden Sie es in add_series() Methode für Diagramme in XlsxWriter.Wie bekomme ich von Zeile col Notation in A1-Notation in xlsxwriter add_series()

Nachstehend finden Sie Code als Referenz:

print "Drawing Simultaneous Busy Cores" 
    writer.targetWrite('simultaneous_busy_cores', 'weighted_average', *write_data) 
    row = writer.getRow('simultaneous_busy_cores') 
    str1_cat = xl_rowcol_to_cell(6, 1, row_abs=True, col_abs=True) 
    str2_cat = xl_rowcol_to_cell(6, 8, row_abs=True, col_abs=True) 
    str1_val = xl_rowcol_to_cell(row-1, 1, row_abs=True, col_abs=True) 
    str2_val = xl_rowcol_to_cell(row-1, 8, row_abs=True, col_abs=True) 
    print str1_cat 
    print str2_cat 
    print str1_val 
    print str2_val 
    dict_series = { 
      'name':  'simultaneous_busy_cores', 
      'categories': '=simultaneous_busy_cores!str1_cat:str2_cat', 
      'values':  '=simultaneous_busy_cores!str1_val:str2_val', 
      'data_labels': {'percentage': True, } 
      } 
    chart1.add_series(dict_series) 
    chart1.set_title({'name': 'simultaneous_busy_cores'}) 
    chart1.set_style(10) 
    target_sheet.insert_chart('K2', chart1, {'x_offset': 25, 'y_offset': 10}) 

Werte für str_cat und str_val sind:

Drawing Simultaneous Busy Cores 
$B$7 
$I$7 
$B$24 
$I$24 

Jede Hilfe ist TIA geschätzt!

Antwort

2

die direkte Frage zu beantworten, könnten Sie string.format() oder % verwenden, um die Variablenwerte in den String einzufügen:

'=simultaneous_busy_cores!%s:%s' % (str1_cat, str2_cat), 

Aber das ist mehr Arbeit, als da XlsxWriter bereits notwendig ist, eine Liste Syntax für die Kategorien unterstützt und Werte:

dict_series = { 
    'name':  'simultaneous_busy_cores', 
    'categories': ['simultaneous_busy_cores', 6, 1, 6, 8], 
    'values':  ['simultaneous_busy_cores', row-1, 1, row-1], 
    'data_labels': {'percentage': True, } 
} 

finden Sie in der Dokumentation auf add_series() für weitere Details.

+0

Dank @John, das wie ein Charme arbeitete! Mir war nicht bewusst, dass die Liste den gesamten Bereich von Zeilen und Spalten annimmt, wenn wir den ersten und letzten Wert angeben. – R2D2

Verwandte Themen