繁体   English   中英

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

[英]python add data to existing excel cell 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(str(v)for LIST中的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]一样打印

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

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

或者,如果您想在同一单元格中使用前三个数字:

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')

然后,以与以前相同的方式遍历它。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM