首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >在Python中使用xlrd将数值Excel数据作为文本读取

在Python中使用xlrd将数值Excel数据作为文本读取
EN

Stack Overflow用户
提问于 2010-04-30 02:58:44
回答 1查看 28K关注 0票数 17

我正在尝试使用xlrd读取Excel文件,我想知道是否有一种方法可以忽略Excel文件中使用的单元格格式,而只是将所有数据导入为文本?

下面是我在far中使用的代码:

代码语言:javascript
复制
import xlrd

xls_file = 'xltest.xls'
xls_workbook = xlrd.open_workbook(xls_file)
xls_sheet = xls_workbook.sheet_by_index(0)

raw_data = [['']*xls_sheet.ncols for _ in range(xls_sheet.nrows)]
raw_str = ''
feild_delim = ','
text_delim = '"'

for rnum in range(xls_sheet.nrows):
    for cnum in range(xls_sheet.ncols):
        raw_data[rnum][cnum] = str(xls_sheet.cell(rnum,cnum).value)

for rnum in range(len(raw_data)):
    for cnum in range(len(raw_data[rnum])):
        if (cnum == len(raw_data[rnum]) - 1):
            feild_delim = '\n'
        else:
            feild_delim = ','
        raw_str += text_delim + raw_data[rnum][cnum] + text_delim + feild_delim

final_csv = open('FINAL.csv', 'w')
final_csv.write(raw_str)
final_csv.close()

此代码是有效的,但某些字段(例如邮政编码)是作为数字导入的,因此它们具有十进制零后缀。例如,如果Excel文件中的邮政编码为'79854‘,它将被导入为'79854.0’。

我试图在这个xlrd spec中找到一个解决方案,但没有成功。

EN

回答 1

Stack Overflow用户

发布于 2010-05-28 23:36:21

我知道这不是问题的一部分,但我会去掉raw_str,直接写给你的csv。对于大文件(10,000行),这将节省大量时间。

你也可以去掉raw_data,只使用一个for循环。

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2739989

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档