Python表格处理
本文最后更新于:2 年前
咋说呢,帮别人统计个数据,奈何我excel是真的不会用,只能用python去处理了。我是真的佩服那些计算机二级考office还过了的人。
声明
本文档的一切内容均为本地测试结果,受限于本人知识与能力,仅供参考,如因参照本文档操作而发生任何问题,无论是否严格参照本文档操作,请恕本人概不负责。
文档中的任何观点受限于本人知识、能力及眼界,不保证理智,公正,客观。如本文档中观点与您相左,以您的意见为准。
参考原文
导包
使用xlwings包
单个单元格
默认情况下,单个单元格返回为“float”,“unicode”,“None”或“datetime”对象,具体取决于单元格是否包含数字,字符串,是否为空或表示日期:
1 | |
列表
一维列表:表示Excel中行或列的范围作为简单列表返回,这意味着一旦它们在Python中,您就丢失了有关方向的信息。 如果这是一个问题,下一点将向您展示如何保留此信息:
1
2
3
4
5
6
7>>> sht = xw.Book().sheets[0]
>>> sht.range('A1').value = [[1],[2],[3],[4],[5]] # 列方向(嵌套列表)
>>> sht.range('A1:A5').value
[1.0, 2.0, 3.0, 4.0, 5.0]
>>> sht.range('A1').value = [1, 2, 3, 4, 5]
>>> sht.range('A1:E1').value
[1.0, 2.0, 3.0, 4.0, 5.0]要强制单个单元格作为列表到达,请使用:
1
2>>> sht.range('A1').options(ndim=1).value
[1.0]二维列表:如果必须保留行或列方向,请在Range选项中设置“ndim”。 这将返回Ranges作为嵌套列表(“二维列表”):
1
2
3
4>>> sht.range('A1:A5').options(ndim=2).value
[[1.0], [2.0], [3.0], [4.0], [5.0]]
>>> sht.range('A1:E1').options(ndim=2).value
[[1.0, 2.0, 3.0, 4.0, 5.0]]2维Range自动作为嵌套列表返回。 将(嵌套)列表分配给Excel中的Range时,只需将左上角的单元格指定为目标地址就足够了。 此示例还使用索引表示法将值读回到Python中:
1
2
3>>> sht.range('A10').value = [['Foo 1', 'Foo 2', 'Foo 3'], [10, 20, 30]]
>>> sht.range((10,1),(11,3)).value
[['Foo 1', 'Foo 2', 'Foo 3'], [10.0, 20.0, 30.0]]
实例
1 | |
Python表格处理
https://www.jingshan256.com/python_excel/