You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用Python将.xls转换为.csv并保留小数末尾零?

XLS转CSV保留小数末尾零的解决方案

你的脚本丢失末尾零的原因是xlrd的row_values()方法会将数值型单元格自动转换为浮点数,导致格式化的末尾零被省略。要保留原始小数格式,需要直接读取单元格的显示文本而非转换后的数值。

修改后的完整代码:

import xlrd
import csv

def xls_to_csv_with_zeros(input_file, output_file):
    workbook = xlrd.open_workbook(input_file)
    sheet = workbook.sheet_by_index(0)

    with open(output_file, 'w', newline='', encoding='utf-8-sig') as csvfile:
        writer = csv.writer(csvfile)

        # 逐行逐单元格处理,获取显示文本
        for row_idx in range(sheet.nrows):
            current_row = []
            for col_idx in range(sheet.ncols):
                # 读取单元格的显示文本,保留Excel中设置的格式
                cell_content = sheet.cell(row_idx, col_idx).text
                current_row.append(cell_content)
            writer.writerow(current_row)

xls_to_csv_with_zeros('input.xls', 'output.csv')

核心修改说明:

  • 替换sheet.row_values()为逐单元格遍历:避免数值被自动转换为浮点数
  • 使用sheet.cell(row_idx, col_idx).text:直接获取Excel单元格的显示文本,完全保留原始格式(包括末尾零)
  • 无需额外类型转换:直接将获取到的文本写入CSV,确保内容和Excel中显示的一致

内容的提问来源于stack exchange,提问作者PDev

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.18 15:25:14