在 Python 中使用 xlrd 将数字 Excel 数据读取为文本

     2023-02-23     22

关键词:

【中文标题】在 Python 中使用 xlrd 将数字 Excel 数据读取为文本【英文标题】:Reading numeric Excel data as text using xlrd in Python 【发布时间】:2011-02-13 23:05:52 【问题描述】:

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

这是我目前使用的代码:

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 中找到解决方案,但未成功。

【问题讨论】:

【参考方案1】:

这是因为 Excel 中的整数值在 Python 中作为浮点数导入。因此,sheet.cell(r,c).value 返回一个浮点数。尝试将值转换为整数,但首先要确保这些值在 Excel 中是整数:

cell = sheet.cell(r,c)
cell_value = cell.value
if cell.ctype in (2,3) and int(cell_value) == cell_value:
    cell_value = int(cell_value)

全部在xlrd spec。

【讨论】:

xlrd 报告它的发现。 Excel 中唯一的“整数值”是小数部分为零的浮点数。 Excel 及其用户只是没有将整数作为单独类型的概念。 XLS 文件中某些 RK 单元记录中包含的整数仅仅是序列化的产物,xlrd 正确地将它们转换为浮点数。【参考方案2】:

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

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

【讨论】:

python在python中使用xlrd和xlwt读写excel(代码片段)

在python中使用xlrd和xlwt读写Excel1、xlrd读取Excel首先是使用pip安装两个库python读excel使用:pipinstallxlrdpython写excel使用:pipinstallxlwtimportxlrdimportdatetimefrom  datetimeimportdatedefread_excel():  #打开文件  wb& 查看详情

python在python中使用xlrd和xlwt读写excel(代码片段)

在python中使用xlrd和xlwt读写Excel1、xlrd读取Excel首先是使用pip安装两个库python读excel使用:pipinstallxlrdpython写excel使用:pipinstallxlwtimportxlrdimportdatetimefrom  datetimeimportdatedefread_excel():  #打开文件  wb& 查看详情

xlrd 库不适用于 xlsx 文件。使用 python 将 xlsx 转换为 xls 的任何方法?

】xlrd库不适用于xlsx文件。使用python将xlsx转换为xls的任何方法?【英文标题】:xlrdlibrarynotworkingwithxlsxfiles.anywaytocovertxlsxtoxlsusingpython?【发布时间】:2011-12-3009:02:27【问题描述】:我想使用python将xlsx文件转换为xls格式。原因是我... 查看详情

python怎么导入xlrd?

参考技术Apython中导入xlrd的方法:安装xlrd在python官网下载对应python版本的xlrd安装包,并将程序包解压,并放在python->Lib文件下然后在cmd命令窗口中进入xlrd目录执行pythonsetup.pyinstall命令然后在python程序中使用importxlrd命即可导入x... 查看详情

将xlrd安装到python3.6 [重复]

】将xlrd安装到python3.6[重复]【英文标题】:installingxlrdintopython3.6[duplicate]【发布时间】:2018-10-1403:50:32【问题描述】:我一直在尝试将xlrd安装到我的计算机中,但不断弹出以下错误消息。\'pip\'未被识别为内部或外部命令,可运... 查看详情

使用 python xlrd 从 Excel 单元格中获取公式

】使用pythonxlrd从Excel单元格中获取公式【英文标题】:GetformulafromExcelcellwithpythonxlrd【发布时间】:2011-06-0902:12:45【问题描述】:我必须将算法从Excel工作表移植到Python代码,但我必须从Excel文件对算法进行逆向工程。Excel工作表... 查看详情

【python】xlrd模块使用

参考技术Apython操作excel主要用到xlrd和xlwt这两个库,即xlrd是读excel,xlwt是写excel的库安装:pipinstallxlrd导入:importxlrd打开excel文件:xlrd.open_workbook(filename)如果路径或者文件名中有中文的话,加上r即可:xlrd.open_workbook(r"file... 查看详情

python操作excel(代码片段)

...指定行操作指定列操作指定单元格使用示例xlrd模块xlrd是Python处理Excel表格数据的一个模块,能够对Excel中的数据进行读取。安装xlrd库在命令行或终端中输入以下命令进行安装:pipinstallxlrd==1.2.0说明一下:由于下... 查看详情

python如何对excel数据进行处理

在python语言中,可以使用xlrd和xlwt两个库操作excel。在python语言中处理Excel的方法:在python项目中,新建python文件,并依次导入xlrd和参考技术A在python语言中,可以使用xlrd和xlwt两个库操作excel。在python语言中处理Excel的方法:在pyth... 查看详情

使用python读取excel中的数据,并重新写入到新的excel中

参考技术A使用Python3运行起初是读取excel中的数据,进行相关的计算将结果追加在后面,没有找到合适的办法,就只能采用这种读取数据,进行相关操作,重新写入的方法(1)使用xlrd打开xls文件,读取数据(2)将需要的数据放进list中... 查看详情

无法导入 xlrd 模块

...布时间】:2011-03-0405:25:14【问题描述】:我的可执行脚本使用的软件包很少依赖于xlrd模块。因此,我尝试使用如图所示的包含选项将此模块包含在设置脚本中。但是当runnery.py调用包模块时,尽管library.zip文件中存在xlrd文件,但... 查看详情

在导航栏中使用 UIPageControl 时的 EXC_BAD_ACCESS

】在导航栏中使用UIPageControl时的EXC_BAD_ACCESS【英文标题】:EXC_BAD_ACCESSwhenusingUIPageControlinnavigationbar【发布时间】:2015-05-0710:15:18【问题描述】:当我第一次点击UITabBarItem“Tabeller”时,会显示这个视图:在选择任何行后,将显示... 查看详情

『开发技巧』解决python使用pandas读取xlsx文件报错“importerror:missingoptionaldependency‘xlrd‘”的问题(代码片段)

0x01:引子 笔者在使用Mac进行Python开发时使用pandas读取xlsx文件遇到这个错误:ImportError:Missingoptionaldependency'xlrd'.Installxlrd>=1.0.0forExcelsupportUsepiporcondatoinstallxlrd.看似简单直接安装xlrd即可,实则在操作过程中并 查看详情

如何读写excel文件?(代码片段)

...:姓名语文数学外语李雷959996韩梅9810093张峰949595...利用python读写excel,添加‘总分‘列,计算每人总分。思路:使用pip安装pipinstallxlrdxlwt使用第三方库xlrd和xlwt,这两个库分别用于exc 查看详情

基于excel参数化你的selenium2测试-xlrd

前言今天我们就如何使用xlrd模块来进行pythonselenium2+excel自动化测试过程中的参数化进行演示说明,以解决大家在自动化测试实践过程中参数化的疑问。环境安装xlrd是python用于读取excel的第三方扩展包,因此在使用xlrd前,需要使... 查看详情

如何将输入读取为数字?

...么在下面的代码中x和y是字符串而不是整数?(注意:在Python2.x中使用raw_input()。在Python3.x中使用input()。raw_input()在Python3.x中重命名为input())play=Truewhileplay:x=input("Enteran 查看详情

如何将 traceback / sys.exc_info() 值保存在变量中?

】如何将traceback/sys.exc_info()值保存在变量中?【英文标题】:Howtosavetraceback/sys.exc_info()valuesinavariable?【发布时间】:2012-01-0412:27:24【问题描述】:我想将错误名称和回溯详细信息保存到变量中。这是我的尝试。importsystry:try:printxe... 查看详情

如何使用 python 从文件夹中的多个 excel 文件中读取工作表名称包含“我的”的任何工作表?我正在使用 xlrd

】如何使用python从文件夹中的多个excel文件中读取工作表名称包含“我的”的任何工作表?我正在使用xlrd【英文标题】:howtoreadanysheetwiththesheetnamecontaining\'mine\'frommultipleexcelfilesinafolderusingpython?iamusingxlrd【发布时间】:2018-03-0816:4... 查看详情