【问题标题】:Python - Extra Excel chart series with win32comPython - 带有 win32com 的额外 Excel 图表系列
【发布时间】:2011-06-14 04:36:42
【问题描述】:

我正在为作业编写一些代码,我需要在 Excel 中创建一个简单的柱形图。今天下午我找到了win32com(顺便说一句很棒的工具),但是我一直在为缺乏有关它的文档而苦恼,或者我没有运气找到它^^

我在玩图表,我想我已经成功地完成了我想要做的事情,但有一点例外:我编写的函数总是创建 2 个系列的列。

这就是我所拥有的:

xlBook = xlApp.Workbooks.Add()

xlSheet = xlBook.Sheets(1)
xlSheet.Name = "Algoritmos de Busqueda"
xlSheet.Cells(1,1).Value="Secuencial"
xlSheet.Cells(2,1).Value="Binaria"
xlSheet.Cells(1,2).Value="32"
xlSheet.Cells(2,2).Value="32"

chart = xlApp.Charts.Add()
chart.Name= "Grafico "+xlSheet.Name
series = chart.SeriesCollection().NewSeries()
valoresx=xlSheet.Range("A1:A2")
valoresy=xlSheet.Range("B1:B2")
series.XValues= valoresx
series.Values= valoresy
series.Name= "Algoritmos"
xAxis= chart.Axes()[0]
yAxis= chart.Axes()[1]
xAxis.HasMajorGridlines = True
yAxis.HasMajorGridlines = True

我在图表中创建了一个新系列,其中包含我需要的所有信息。但是,当我运行脚本时,我最终得到了一个包含 4 列的 Excel 图表,具有相同的信息(成对)。我已尽我所能,但我找不到在 X 轴上创建第二系列值的原因...

非常感谢任何帮助^^谢谢!

【问题讨论】:

    标签: python excel charts win32com series


    【解决方案1】:

    通过观察在 Excel 中记录宏的行为,该宏执行与我们在 Python 中复制相同的操作,我们可以看到似乎不需要创建新系列,例如

    series = chart.SeriesCollection().NewSeries()
    

    我能够简单地引用一个现有的系列

    series = chart.SeriesCollection(1)
    

    以下代码似乎在我的计算机上为我提供了所需的行为。

    import win32com.client
    xlApp = win32com.client.Dispatch('Excel.Application')
    
    xlBook = xlApp.Workbooks.Add()
    
    xlSheet = xlBook.Sheets(1)
    xlSheet.Name = "Algoritmos de Busqueda"
    xlSheet.Cells(1,1).Value="Secuencial"
    xlSheet.Cells(2,1).Value="Binaria"
    xlSheet.Cells(1,2).Value="32"
    xlSheet.Cells(2,2).Value="32"
    
    chart = xlApp.Charts.Add()
    chart.Name= "Grafico "+xlSheet.Name
    series = chart.SeriesCollection(1)
    series.XValues= xlSheet.Range("A1:A2")
    series.Values= xlSheet.Range("B1:B2")
    series.Name= "Algoritmos"
    chart.Axes()[0].HasMajorGridlines = True
    

    这已被简化到最低限度。 我在 Python 2.7 中使用 Excel 2003 对此进行了测试。

    【讨论】:

    • 太棒了!!是的,这很好用^^现在我可以使用 Excel 创建的系列以及新图表,而不是创建一个新图表。非常感谢!
    猜你喜欢
    • 1970-01-01
    • 2013-12-30
    • 1970-01-01
    • 1970-01-01
    • 2013-07-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多