Python XLSB到CSV转换数据类型

时间:2018-11-09 12:08:41

标签: python excel csv xlsb

我一直在创建一个脚本,该脚本将Excel文件转换为csv,以便在我们的某些工具中进行进一步处理。

对于xls,xlsx和xlsm,我已经找到了以文本对象或使用熊猫打开文件的解决方案。遇到xlsb文件时,我将其放在pyxlsb软件包上,该软件包可以工作...请参考此处使用的代码How can I convert a XLSB file to csv using python?

可悲的是,我注意到xlsb文件中的int()值似乎已转换为浮点型,因此以浮点型的形式写入了我的csv文件。这显然是不可取的。

基本上,我在寻找dt​​ype = object type解决方案。我想也许我可以建议使用另一个函数将值转换回int的步骤。但是,我认为这样效率低下并且容易出错。

我在pyxlsb页面(https://pypi.org/project/pyxlsb/)上四处走运,没有运气。

我的代码:

    to_replace_list = ['\r', '\n', '\\r\\n', '\\' + str(out_del)]  # values to replace in all rows
    with open_xlsb(file_to_convert) as wb:  # open xlsb file using pyxlsb package
        for sheet_name in wb.sheets:  # loop over all sheets in file
            with wb.get_sheet(sheet_name) as sheet:  # open xlsb sheet obj
                out_file = out_filer(total_filename, sheet_name)  # define output file name based on source and sheet
                with open(out_file, 'a') as o:  # open output csv obj
                    for row in sheet.rows():  # loop over rows in xlsb obj
                        print([re.sub(value, '', str(cell.v)) for value in to_replace_list for cell in row])

sidequest:xlsb文件中的空值在输出中将被称为None。我希望这是“。

1 个答案:

答案 0 :(得分:0)

自Pandas 1.0.1发行以来,read_excel()现在具有xlsb支持

?bar

https://pandas.pydata.org/docs/user_guide/io.html#io-xlsb