1

私のコードの次のスニペットは正常に動作します。グラフを作成し、そのタイプを xlLine に設定します

chart = ws.Shapes.AddChart().Select()
xl.ActiveChart.ChartType = win32com.client.constants.xlLine
xl.ActiveChart.SetSourceData(Source=ws.Range(range))

ただし、このコードを実行すると

chart = ws.Shapes.AddChart().Select()
xl.ActiveChart.ChartType = win32com.client.constants.xlColumn
xl.ActiveChart.SetSourceData(Source=ws.Range(range))

次のエラーが表示されます

Traceback (most recent call last):
  File "C:\Users\Simon\workspace\python\pyexcelchart\pyexcelchart.py", line 52, in <module>
    excelChart(workbook=wbk,worksheet="Sheet1",range="A1:B6")
  File "C:\Users\Simon\workspace\python\pyexcelchart\pyexcelchart.py", line 46, in excelChart
    xl.ActiveChart.ChartType = win32com.client.constants.xlColumn
  File "C:\WinPython-32bit-2.7.3.3\python-2.7.3\lib\site-packages\win32com\client\__init__.py", line 512, in __setattr__
    d.__setattr__(attr, value)
  File "C:\WinPython-32bit-2.7.3.3\python-2.7.3\lib\site-packages\win32com\client\__init__.py", line 474, in __setattr__
    self._oleobj_.Invoke(*(args + (value,) + defArgs))
pywintypes.com_error: (-2147352567, 'Exception occurred.', (0, None, None, None, 0, -2147467259), None)

makepy.py を実行して Excel COM 定数を生成しましたが、ChartType = 3 などの数値型を使用しても同じエラーが発生します。ChartType = 4 (線) に設定すると、問題なく動作します。

ChartType xlColumn を xlRandomText に設定すると、きれいな AttributeError: xlRandomText が発生することに気付きました。したがって、pythonはxlColumnでは問題ないようですが、xlLine以外ではExcelの自動化に問題があります。これは python/Excel 2010 の問題でしょうか? ちなみに私はpython 2.7とExcel 2010を使っています

4

1 に答える 1

3

理由はわかりませんが、xlColumn は利用可能なグラフの種類としてここにリストされていません: http://msdn.microsoft.com/en-us/library/office/bb241008(v=office.12).aspx

ただし、これはうまくいくかもしれません:

xl.ActiveChart.Type = win32com.client.constants.xlColumn
于 2013-05-14T22:28:31.727 に答える