python操作excel读取数据,如何返回的是gbk 20
我写了一个程序,但是读取出来的编码不对,请各位大神帮忙看一下,如果有更简便的办法,请贴出来,让我学习学习。defopen_excel(file='G:/123.xls')...
我写了一个程序, 但是读取出来的编码不对, 请各位大神帮忙看一下,如果有更简便的办法,请贴出来,让我学习学习。
def open_excel(file= 'G:/123.xls'):
try:
data = xlrd.open_workbook(file)
return data
except Exception,e:
print str(e)
def excel_table_byindex(file= 'G:/123.xls',colnameindex=0,by_index=0,encoding='utf-8',):
data = open_excel(file)
table = data.sheets()[by_index]
nrows = table.nrows
ncols = table.ncols
colnames = table.row_values(colnameindex)
list =[]
for rownum in range(1,nrows):
row = table.row_values(rownum)
if row:
app = {}
for i in range(len(colnames)):
app[colnames[i]] = row[i]
list.append(app)
return list
def main():
tables = excel_table_byindex()
for row in tables:
print row
if __name__=="__main__":
# gbkToUtf8(".")
main()
最好是加我q详谈。 2101949880
大神们帮帮忙啊 , 小弟真的是很急。 展开
def open_excel(file= 'G:/123.xls'):
try:
data = xlrd.open_workbook(file)
return data
except Exception,e:
print str(e)
def excel_table_byindex(file= 'G:/123.xls',colnameindex=0,by_index=0,encoding='utf-8',):
data = open_excel(file)
table = data.sheets()[by_index]
nrows = table.nrows
ncols = table.ncols
colnames = table.row_values(colnameindex)
list =[]
for rownum in range(1,nrows):
row = table.row_values(rownum)
if row:
app = {}
for i in range(len(colnames)):
app[colnames[i]] = row[i]
list.append(app)
return list
def main():
tables = excel_table_byindex()
for row in tables:
print row
if __name__=="__main__":
# gbkToUtf8(".")
main()
最好是加我q详谈。 2101949880
大神们帮帮忙啊 , 小弟真的是很急。 展开
展开全部
如果知道编码方式可以在open时指定
book = open_workbook('123.xls',encoding='cp1252')
book = open_workbook('123.xls',encoding='cp1252')
更多追问追答
追问
不好使, 你能调试好把所有代码发上来么?
追答
除了一个循环自变量有问题,其他跑的没问题啊。
你excel文件保存的encoding是什么
import traceback
import xlrd
def open_excel(file= 'D:/123.xls'):
try:
data = xlrd.open_workbook(file)
return data
except Exception as ex:
print(ex)
def excel_table_byindex(file= 'D:/123.xls',colnameindex=0,by_index=0,encoding='utf-8',):
data = open_excel(file)
table = data.sheets()[by_index]
nrows = table.nrows
ncols = table.ncols
colnames = table.row_values(colnameindex)
list =[]
for rownum in range(nrows):
row = table.row_values(rownum)
if row:
app = {}
for i in range(len(colnames)):
app[colnames[i]] = row[i]
list.append(app)
return list
def main():
tables = excel_table_byindex()
for row in tables:
print(row, '\n')
if __name__=="__main__":
# gbkToUtf8(".")
main()
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
试试把数据编码为utf8再看?
data.encode('utf8')
data.encode('utf8')
追问
哥们你能改好了。 然后把整篇改好的代码一起发一下么
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2014-10-15
展开全部
300python普及课程群为你解惑,欢迎加盟!
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询