Python可以读取电子表格中单元格的值吗?
大家好,
请问Python能读取电子表格中某个单元格的值吗?
从地图和地理信息系统(GIS)分析的角度来看,最简单的例子就是写一个脚本,利用一个缓冲区工具来处理给定的形状文件(GIS数据集)。
在设置缓冲区的距离参数时,不是直接用一个数字,比如说“1000”英尺,而是让脚本指向电子表格中某个单元格的值(最好是Libre或Open Office)。
如果能通过电子表格里的一个按钮来触发这个脚本,那就是下一步了(再下一步就是在电子表格里放一个地图控件,方便查看更新后的结果!)
为了让大家更明白我想做什么:我想把电子表格当作一个分析“仪表盘”,用户可以用不同的参数来进行分析,比如说在公园(超市等)周围的距离,1/2英里和1/4英里的情况对比……然后电子表格的另一张表可以列出这个区域内的人口统计信息。
谢谢大家!!!
(也在这里发布过: https://gis.stackexchange.com/questions/49288/can-python-read-the-value-of-a-cell-in-a-spreadsheet)
-mb
3 个回答
这听起来不错,但实在是太模糊了。你到底在哪里执行安装命令呢?即使你搞明白了要去 pip3.6.exe 的目录并从那里运行它,它也找不到 python3-uno。它只会找到 python-uno,但即便如此,你也无法运行任何以 import uno 开头的脚本,因为缺少一些元素,而这些元素似乎又很难获得。用这种方式在 LibreOffice 中做最简单的事情都特别困难。
pyoo 是一个简单的工具包。首先要安装它。
python-uno
python3-uno
然后安装 pyoo。
python setup.py install
python3 setup.py install
接下来,运行 soffice(也就是 LibreOffice 或 OpenOffice)。
soffice --accept="socket,host=localhost,port=2002;urp;" --norestore --nologo --nodefault # --headless
下面的脚本展示了它在 Python 中是如何工作的。
desktop = pyoo.Desktop('localhost', 2002)
doc = desktop.open_spreadsheet(path)
sheet = doc.sheets[0]
for i in range(0,14):
for j in range(0,4):
print(sheet[i,j].value)
有一些很不错的Python和Excel工具可以使用,具体可以去这个网站看看:http://www.python-excel.org