如何使用Python在Excel 2003的工作表中嵌入绘图

时间:2012-11-08 22:33:48

标签: python excel-vba excel-2003 vba excel

我有以下函数执行我想要它做的事情,除了我不想在新工作表上生成图表,而是将其嵌入到写入数据的工作表中。另外,我该如何删除图例?这就是我所拥有的:

def Get_IV_Data(current_file):

    xlApp = win32com.client.Dispatch('Excel.Application')
    xlApp.Visible = True

    xlBook = xlApp.Workbooks.Add()

    xlSheet = xlBook.Sheets(1)
    xlSheet.Name = filename

    for i in range(0, 10):
        fluff = current_file.readline()

    Input_Parameters = fluff.split("\t")

    from operator import itemgetter
    Cal_Std_V = float(itemgetter(2)(Input_Parameters))

    xlSheet.Cells(1,1).Value = "V"
    xlSheet.Cells(1,2).Value = "I"
    xlSheet.Cells(1,3).Value = "P"

    output_line = 2

    # Assign the data to lists

    for line in current_file:
        try:
            a = line.split("\t")
            STD1, STD2, STD3, V, I, Vcorr, Icorr, v1, v2, v3 = a
            I = round(float(I) * (Cal_Std_V / float(STD1)), 6)
            P = round(float(V) * I, 3)
            xlSheet.Cells(output_line, 1).Value = V
            xlSheet.Cells(output_line, 2).Value = I
            xlSheet.Cells(output_line, 3).Value = P
            output_line += 1

        except ValueError:
            pass

    chart = xlApp.Charts.Add()
    chart.Name= "Plot "+xlSheet.Name
    series = chart.SeriesCollection(1)
    series.XValues= xlSheet.Range("A2:A200")
    series.Values= xlSheet.Range("B2:B200")
    series.Name= filename

1 个答案:

答案 0 :(得分:0)

通过调用Chart方法设置Location的位置,该方法有两个参数。

第一个名为Where,其名称xlLocationAsNewSheetxlLocationAsObjectxlLocationAutomatic的枚举分别为1,2和3。

第二个参数是Name,这是一个工作表名称。

这是Python中的内容:

xlLocation = {"AsNewSheet": 1,
              "AsObject": 2,
              "Automatic": 3 }
chart.Location(xlLocation["AsObject"], xlSheet.Name)

如果您喜欢幻数,可以将其更改为

chart.Location(2, xlSheet.Name)