我有一个名为rng
的嵌套元组,它是从Excel工作表创建的:
from win32com.client import GetObject
exl = GetObject(None, "Excel.Application")
exl_wbs = exl.Workbooks
wb_names = [wb.Name for wb in exl_wbs]
sht = exl_wbs[1].Sheets(2)
lrow = sht.Cells(sht.Rows.Count, 1).End(3).Row
lcol = sht.Cells(1, sht.Columns.Count).End(1).Column
rng = sht.Range(sht.Cells(2, 1), sht.Cells(lrow, lcol))
用print(rng)
输出:
((2.0, 'I', None, 'AMC'), (2.0, 'I', None, 'DC-01'), (3.0, 'I', None, 'GC-01') #etc..
我试图将这个元组分解成单独的行,如下所示
(2.0, 'I', None, 'AMC')
(2.0, 'I', None, 'DC-01')
(3.0, 'I', None, 'GC-01')
我尝试使用print("\n".join(map(str, rng)))
,但这会将每一项放在新行中:
2.0
I
None
AMC
2.0
I
None
DC-01
3.0
I
None
GC-01
如何分解元组以使其符合我的需要?你知道吗
回答我自己的问题以备将来参考
作为Alex rightfully commented,
Range
对象不是元组。由于此对象是指向Excel工作表中单元格的直接活动链接,因此尝试更改此对象也会更改工作表。你知道吗结果我在工作表中的行之间循环。然后我可以循环遍历这个迭代的范围,并将范围的值添加到列表中。此列表不再链接到Excel,因此可以轻松地进行更改。我必须去掉“None”(空单元格)和十进制值,您可以在下面的代码中看到它们。你知道吗
相关问题 更多 >
编程相关推荐