2017-03-29 15 views
2

row colをA1表記に変換する方法がわからず、XlsxWriterの図表のadd_series()メソッドで使用します。xlsxwriterの行記法からA1表記へのアクセス方法add_series()

参照用のコードの下に見つけてください:str_catとstr_valため

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}) 

値は次のとおりです。

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

すべてのヘルプがTIA歓迎です!

答えて

2

直接質問に答えるために、あなたは文字列に変数の値を挿入するstring.format()または%を使用することができます。XlsxWriterはすでにカテゴリのリスト構文をサポートしていますので、

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

しかし、それは必要以上の作品です値:

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, } 
} 

詳細はadd_series()のドキュメントを参照してください。

+0

ありがとう@ジョンは魅力的に働いた!私は最初と最後の値を提供するときにリストが行と列の全範囲を想定していることに気づいていませんでした。 – R2D2

関連する問題