当前位置: 首页 > java >正文

使用xlwings将excel表中将无规律的文本型数字批量转化成真正的数字

之前我写了一篇文章excel表中将无规律的文本型数字批量转化成真正的数字-CSDN博客

是使用excel自带的操作,相对繁琐。

今天使用xlwings操作,表格如下(有真正的数字,也有文本型数字,混在在一起):

分两种情况进行转换:

第一种,将整个表内的所有单元格进行转换;

第二种,只针对B列内的单元格进行转换。

第一种代码如下:

import xlwings as xw# 打开工作簿和工作表
wb = xw.Book('文本型数字转换为真正数字.xlsx')  # 替换为实际文件名
ws = wb.sheets[0]  # 根据需要修改工作表索引或名称# 获取整个已使用区域
used_range = ws.used_range
data = used_range.value  # 读取所有单元格内容
print(data)# 遍历所有单元格,将文本型数字转换为数值
for row_idx, row in enumerate(data, start=1):for col_idx, cell in enumerate(row, start=1):if isinstance(cell, str):try:# 去除空格再尝试转换num = float(cell.strip())# 更新为数值ws.cells(row_idx, col_idx).value = numexcept ValueError:pass  # 跳过无法转换的字符串# 可选:保存并关闭
# wb.save()
# wb.close()

运行结果如下(表内所有单元格都已经成为真正的数字):

第二种代码如下:

# 只针对B列进行转换
import xlwings as xw# 打开工作簿和工作表
wb = xw.Book('文本型数字转换为真正数字.xlsx')  # 请替换为你的实际文件名
ws = wb.sheets[0]  # 可按需指定工作表名称,例如 ws = wb.sheets['Sheet1']# 获取 B 列已使用的单元格范围
last_row = ws.range('B' + str(ws.cells.last_cell.row)).end('up').row
column_range = ws.range(f'B2:B{last_row}')  # 从第2行开始,假设第1行为标题# 遍历 B 列的单元格
for cell in column_range:val = cell.valueif isinstance(val, str):try:num = float(val.replace(',', '').strip())  # 去除空格与逗号cell.value = num  # 转换为数字类型except ValueError:pass  # 非数字文本跳过# 可选保存
# wb.save()
# wb.close()

运行结果如下(只有B列中的单元格转成成真正的数字,其它列的保持原态): 

 

http://www.xdnf.cn/news/3630.html

相关文章:

  • 自定义Dockerfile,发布springboot项目
  • Mysql进阶篇1_存储引擎、索引、SQL性能分析指令
  • 基于Jenkins的DevOps工程实践之Jenkins共享库
  • AVIOContext 再学习
  • Spring 容器相关的核心注解​
  • 19. LangChain安全与伦理:如何避免模型“幻觉“与数据泄露?
  • Linux电源管理(5)_Hibernate和Sleep功能介绍
  • ElasticSearch深入解析(九):Object、Nested、Flattened类型
  • 【RabbitMQ】 RabbitMQ快速上手
  • Python 函数装饰器和闭包(使用装饰器改进“策略”模式)
  • 玩转Docker | 使用Docker部署AI证件照工具
  • 【2025】ORM框架是什么?有哪些常用?Mybatis和Hibernate是什么样的?
  • ES6/ES11知识点
  • wpf CommandParameter 传递MouseWheelEventArgs参数 ,用 MvvmLight 实现
  • Word域操作记录(从1开始的毕业论文格式排版)
  • 神经网络的基本概念与深度解析——基于生物机制的仿生建模与工程实现
  • Spring Boot的GraalVM支持:构建低资源消耗微服务
  • Kubernetes(k8s)学习笔记(四)--入门基本操作
  • 双指针(5)——有效三角形个数
  • 杭电oj(1180、1181)题解
  • “淘宝闪购”提前4天全量,意味着什么?
  • 传奇各职业/战士/法师/道士/手套/手镯/护腕/神秘腰带爆率及出处产出地/圣战/法神/天尊/祈祷/虹魔/魔血
  • Demo02_基于寄存器+标准库开发的项目
  • 传奇各职业/战士/法师/道士/戒指爆率及出处产出地/圣战/法神/天尊/虹魔/魔血/麻痹/超负载/求婚/隐身/传送/复活/护身/祈祷/火焰
  • Linux系统常用命令、标准C库函数和系统调用
  • new和malloc的区别
  • 一场陟遐自迩的 SwiftUI + CoreData 性能优化之旅(上)
  • Redis总结及设置营业状态案例
  • 泰迪杯特等奖案例学习资料:基于CLIP模型微调与知识蒸馏的多模态图文检索系统设计
  • B站Michale_ee——ESP32_IDF SDK——FreeRTOS_7 流数据缓冲区、消息缓冲区