python将数据添加到现有的excel单元Win32com

时间:2016-12-16 12:58:53

标签: python excel win32com

假设我将A1作为工作簿中的唯一单元格,并且它是空白的。 我希望我的代码添加" 1" " 2"和" 3"所以它说" 1 2 3"

截至目前,我有:

NUMBERS = [1, 2, 3, 4, 5]
ThisSheet.Cells(1,1).Value = NUMBERS

这只是将第一个值写入单元格。我试过了

ThisSheet.Cells(1,1).Value = Numbers[0-2]

但只是将LAST值放在那里。我有办法在那里添加所有数据吗?此信息将始终采用String格式,我需要使用Win32Com。

更新: 我做了

stringVar =',' .join(列表中v的str(v))

更新:此.join适用于NUMBERS列表。现在我尝试将其归因于另一个看起来像这样的列表

LIST=[Description Good\nBad, Description Valid\nInvalid]

如果我打印LIST [0]结果是

Description Good
Bad

这就是我想要的。但是如果我在这个上使用.join,它会打印

('Description Good\nBad, Description Valid\nInvalid')

所以对于这个,我需要打印,好像我做了LIST [0]和LIST [1]

1 个答案:

答案 0 :(得分:1)

因此,如果您想将每个数字放在不同的单元格中,您可以执行以下操作:

it = 1
for num in NUMBERS:
    ThisSheet.Cells(1,it).Value = num
    it += 1

或者,如果您想要同一个单元格中的前3个数字:

ThisSheet.Cells(1,it).Value = ' '.join([str(num) for num in NUMBERS[:3]])

NUMBERS中的所有元素:

ThisSheet.Cells(1,1).Value = ' '.join([str(num) for num in NUMBERS])

修改

根据您的问题编辑,对于包含\n的字符串类型,并假设每次找到换行符时,您都希望跳转到下一行:

# Split the LIST[0] by the \n character
splitted_lst0 = LIST[0].split('\n')
# Iterate through the LIST[0] splitted by newlines
it = 1
for line in splitted_lst0:
     ThisSheet.Cells(1,it).Value = line
     it += 1

如果你想为整个LIST而不是LIST[0]执行此操作,请先将其与join方法合并,然后将其拆分:

joined_list = (''.join(LIST)).split('\n')

然后,以与之前相同的方式迭代它。