Как создавать электронные таблицы Excel со встроенными графиками? - PullRequest
2 голосов
/ 11 декабря 2011

Я хочу создавать электронные таблицы Excel со встроенными графиками.В идеале я хотел бы сделать с Python на Mac.Если я не могу этого сделать, я хотел бы сделать это с помощью какой-то автоматизации Excel на Mac.Если я не могу этого сделать, я хочу сделать это в Windows, манипулируя Excel через COM, но я все равно хотел бы сделать это из Python.У кого-нибудь есть какой-нибудь код?Спасибо.

Ответы [ 2 ]

4 голосов
/ 11 декабря 2011

Вот базовый пример Python COM для Windows:

import win32com.client
from win32com.client import constants as c

xl = win32com.client.gencache.EnsureDispatch('Excel.Application')
xl.Visible = True
wb = xl.Workbooks.Add()
ws = xl.ActiveSheet
ws.Range('A1').FormulaR1C1 = 'X'
ws.Range('B1').FormulaR1C1 = 'Y'
ws.Range('A2').FormulaR1C1 = 1
ws.Range('A3').FormulaR1C1 = 2
ws.Range('A4').FormulaR1C1 = 3
ws.Range('B2').FormulaR1C1 = 4
ws.Range('B3').FormulaR1C1 = 5
ws.Range('B4').FormulaR1C1 = 6
ws.Range('A1:B4').Select()
ch = ws.Shapes.AddChart().Select()
xl.ActiveChart.ChartType = c.xlXYScatterLines
xl.ActiveChart.SetSourceData(Source=ws.Range("A1:B4"))

Он был переведен путем записи макроса в Excel.Вот макрос, чтобы вы могли увидеть, насколько он похож.Просто запишите, что вы хотите сделать в Excel, и переведите его в синтаксис Python:

Sub Macro1()
'
' Macro1 Macro
'

'
    ActiveCell.FormulaR1C1 = "X"
    Range("B1").Select
    ActiveCell.FormulaR1C1 = "Y"
    Range("A2").Select
    ActiveCell.FormulaR1C1 = "1"
    Range("A3").Select
    ActiveCell.FormulaR1C1 = "2"
    Range("A4").Select
    ActiveCell.FormulaR1C1 = "3"
    Range("B2").Select
    ActiveCell.FormulaR1C1 = "4"
    Range("B3").Select
    ActiveCell.FormulaR1C1 = "5"
    Range("B4").Select
    ActiveCell.FormulaR1C1 = "6"
    Range("A1:B4").Select
    ActiveSheet.Shapes.AddChart.Select
    ActiveChart.ChartType = xlXYScatterLines
    ActiveChart.SetSourceData Source:=Range("Sheet1!$A$1:$B$4")
End Sub
0 голосов
/ 11 декабря 2011

Основные известные мне инструменты для работы с Excel на Mac - это xlrd / xlwt и формат Excel 2004 XML.AFAICT, ни один из них не поддерживает встроенные графики.

Итак, я думаю, что остается только возможность манипулировать Excel через COM в Windows.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...