python解析excel出现的问题

我用的是python26,xlrd下载的是官方的0.7.7,现在出现的问题如下图所示在线等待高手解决问题··不胜感激·谢谢了··... 我用的是python26,xlrd下载的是官方的0.7.7,现在出现的问题如下图所示

在线等待高手解决问题··不胜感激·谢谢了··
展开
 我来答
tim_spac
2012-05-10 · TA获得超过3629个赞
知道大有可为答主
回答量:1804
采纳率:100%
帮助的人:2071万
展开全部
class ExcelFile:
'''ExcelFile 类用于python简单地读写excel文件'''
def __init__(self):
self.handle, self.book = None, None
self.sheets = {}

def read(self, filename):
self.handle = xlrd.open_workbook(filename)
self.sheets = dict([(sheetname,self.handle.sheet_by_name(sheetname))
for sheetname in self.handle.sheet_names()])

def sheet_row(self, sheetname, rownumber = 0):
'''指定sheet页, 读取一行数据(通常用于读取首行标题)'''
if sheetname not in self.sheets: return None
if self.sheets[sheetname].nrows == 0: return None
return self.sheets[sheetname].row_values(rownumber)

def sheet_datas(self, sheetname, start_row, types = []):
'''指定sheet页, 读取从指定行开始的所有表格数据
(后面的列表指定各列数据类型转换的方法)
'''
for r in xrange(start_row, self.sheets[sheetname].nrows, 1):
try:
yield map(_tp, types, self.sheets[sheetname].row_values(r))
except Exception:
pass

def addsheet(self, name, title, data, styles=[]):
''' 添加Sheet页
name: 指定sheet页标签
title: 指定各列标题
data: 数组数据
styles: 指定各列格式
'''
if not self.book: self.book = xlwt.Workbook()
if name not in self.sheets:
self.sheets[name] = self.book.add_sheet(name)
sheet = self.sheets[name]
styles = ['Normal' if not item else item for item in styles]

r = 0
def write(d):
i, c = d
c = u'' if not c else (c if type(c)!=str else unicode(c,'gbk'))
style = 'Normal' if i<0 or i>=len(styles) else styles[i]
if style == 'DATE':
sheet.write(r, i, c, style_date)
elif style == 'DATETIME':
if type(c)==DateTime.datetime:
sheet.write(r, i, c, style_datetime)
else:
sheet.write(r, i, trys2dt(c), style_datetime)
elif style == 'MONEY':
sheet.write(r, i, c, style_money)
elif style == 'INT':
sheet.write(r, i, c, style_int)
elif style:
try:
sheet.write(r, i, c, style)
except:
sheet.write(r, i, c)
else:
sheet.write(r, i, c)

map( write, enumerate(title) )
for rid, row in enumerate(data):
r = rid+1
map( write, enumerate(row) )

def saveto(self, filename):
self.book.save(filename)
likecao
2012-05-14 · TA获得超过288个赞
知道小有建树答主
回答量:446
采纳率:0%
帮助的人:250万
展开全部
找了下我以前的代码,有这么段:
def xls2db(path):
bk = xlrd.open_workbook(path)
for sheet in range(bk._all_sheets_count):
sh = bk.sheets()[sheet]
rowValues = sh.row_values(1)
... ...

我是用_all_sheets_count这个属性来获取表数量的,通过sheets()[num]来获取具体的表,然后通过row_values(num)获取值。你用的是sheets_name这个函数,从字面上看,是获取的表名称吧?而不是具体的表数据。
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式