问题及解决方案
1 python通过open()和xlrd.open_workbook()函数打开带有中文的文件时报错的问题
解:将文件进行编码
file = file.decode("utf-8")
2 存在中文导致无法读取
data = xlrd.open_workbook(filename)#文件名以及路径,如果路径或者文件名有中文给前面加一个 r
3.导入文件之后报错
输入文件所在的完整路径或将.py和excel放入同一个文件夹
import xlrd
# file = open("D:/test.xls",'rb')
# print(file)
# 打开excel #文件名以及路径,如果路径或者文件名有中文给前面加一个 r
data = xlrd.open_workbook("D:/test.xls")
# 通过名称获取book(excel文件)中一个工作表
sheet = data.sheet_by_name("Sheet1")
# sheet2 = data.sheets()[0] # 通过索引顺序获取
# sheet3 = data.sheet_by_index() # 通过索引顺序获取
print(sheet)
names = data.sheet_names() # 返回book中所有工作表的名字
print(names)
nrows = sheet.nrows # 获取行数
print(nrows)
aa = sheet.row(0) # 获取该行所含有的内容的列表,从0开始
print(aa)
obj = sheet.row_len(0) # 返回该行的有效单元格长度,即这一行有多少个数据
print(obj)
a2 = sheet.row_types(0, start_colx=0, end_colx=None)
# 返回由该行中所有单元格的数据类型组成的列表;
# 返回值为逻辑值列表,若类型为empy则为0,否则为1
print(a2)
a3 = sheet.row_values(0, start_colx=0, end_colx=None)
# 返回由该行中所有单元格的数据组成的列表
print(a3)
# 对列的操作
ncols = sheet.ncols # 获取列表的有效列数
print(ncols)
b1 = sheet.col(0) # 返回该列中所有的单元格对象组成的列表
print(b1)
b2 = sheet.col_values(0, start_rowx=0, end_rowx=None) # 返回由该列中所有单元格的数据组成的列表
print(b2)
#单元格的操作
c1 = sheet.cell(0,0) # 返回单元格对象
print(c1)
c2 = sheet.cell_type(0,0) # 返回对应位置单元格中的数据类型
print(c2)
c3 = sheet.cell_value(0,0) # 返回对应位置单元格中的数据
print(c3)