1.需要的python库
pip install xlrd
2.读取excel指定的列并将内容保存为txt内容
代码如下:
import xlrd
def strs(row):
values = ""
for i in range(len(row)):
if i == len(row) - 1:
values = values + str(row[i])
else:
values = values + str(row[i])
return values
data = xlrd.open_workbook("data.xlsx")
sqlfile = open("name.txt", "a")
table = data.sheets()[2]
nrows = table.nrows
ncols = table.ncols
colnames = table.row_values(1)
for ronum in range(1, nrows):
row = table.cell_value(rowx=ronum, colx = 2)
values = strs(row)
sqlfile.writelines(values + "\n")
sqlfile.close()
3.结果如下
4.报错解决
- 安装最新版本的xlrd可能会报错:xlrd.biffh.XLRDError: Excel xlsx file; not supported
原因是xlrd更新了版本,只支持.xls文件。所以xlrd.open_workbook(“data.xlsx”)会报错。 可以安装旧版xlrd,在cmd中运行:
pip uninstall xlrd
pip install xlrd==1.2.0
- 使用python3.9读取excel时报错AttributeError: ‘ElementTree’ object has no attribute ‘getiterator’
出现错误的原因
在新版python3.9中,windows中使用的更新删除了getiterator方法,所以我们老版本的xlrd库调用getiterator方法时会报错。AttributeError: ‘ElementTree’ object has no attribute ‘getiterator’
解决方法
windows中找出目录Anaconda\Lib\site-packages\xlrd下的xlsx.py文件, 修改两个地方的的getiterator()改成iter(),下面的两个地方,这里已经把getiterator()改成iter()了 然后重新载入程序就解决了。
|