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

Excel列名转换

这段时间工作中需要用到Excel的列名转换,如列A,转为1或索引0,AA转为27或索引26。于是开发了个代码解决这个问题,简单记录下来。以C#代码为例:

    /// <summary>/// 电子表格相关转换工具/// </summary>public class ColumnConvert{/// <summary>/// Excel列26进制/// </summary>private static readonly int ColumnRadix = 26;/// <summary>/// 列名转数字,从1开始/// </summary>/// <param name="column">列名</param>/// <returns>列编号</returns>public static int GetColumnNumber(string column){int res = 0;int power = 1;var col = column.ToUpper();for (int i = col.Length - 1; i >= 0; i--){char now = col[i];int diff = now - 'A';res += (diff + 1) * power;power *= ColumnRadix;}return res;}/// <summary>/// 列名转索引,从0开始/// </summary>/// <param name="column">列名</param>/// <returns>列索引</returns>public static int GetColumnIndex(string column){return GetColumnNumber(column) - 1;}/// <summary>/// 列号转列名,从1开始/// </summary>/// <param name="colNum">列号</param>/// <returns></returns>public static string GetColumnName(int colNum){StringBuilder res = new StringBuilder();int remain = (colNum - 1) % ColumnRadix;char addChar = (char)('A' + remain);res = res.Insert(0, addChar);colNum = (colNum - 1) / ColumnRadix;while (colNum >= 1){int left = (colNum - 1) % ColumnRadix;char add = (char)('A' + left);res = res.Insert(0, add);colNum = (colNum - 1) / ColumnRadix;}return res.ToString();}}

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 54、PHP 实现希尔排序
  • 选择 websim网站:一个用自然语言快速构建生成功能齐全的网站
  • 8月4号分析:CSGO市场行情如何,给几个操作建议
  • C++——string类及其使用
  • TeleVis:基于NLP的新冠新闻舆情可视化项目
  • YOLOv8改进 | 注意力机制 | 反向残差注意力机制【内含创新技巧思维】
  • ShardingProxy使用自定义策略,数据迁移方案
  • 排序算法:归并排序,golang实现
  • C语言自定义类型联合体与枚举超详解
  • Python中的“@”,有什么用?
  • 【Tessent】【Command】set_design_level Design Level
  • 【系统架构设计师】二十四、安全架构设计理论与实践⑤
  • 双算法https证书获取指南
  • win10自带dll修复丢失的几种方法,快速修复错误dll文件的方式
  • c++初阶-----STL---list
  • [译] React v16.8: 含有Hooks的版本
  • 【笔记】你不知道的JS读书笔记——Promise
  • exports和module.exports
  • go append函数以及写入
  • idea + plantuml 画流程图
  • Java比较器对数组,集合排序
  • Object.assign方法不能实现深复制
  • Puppeteer:浏览器控制器
  • PV统计优化设计
  • React中的“虫洞”——Context
  • seaborn 安装成功 + ImportError: DLL load failed: 找不到指定的模块 问题解决
  • UMLCHINA 首席专家潘加宇鼎力推荐
  • 构造函数(constructor)与原型链(prototype)关系
  • 说说动画卡顿的解决方案
  • 学习笔记TF060:图像语音结合,看图说话
  • 白色的风信子
  • #微信小程序:微信小程序常见的配置传旨
  • #我与虚拟机的故事#连载20:周志明虚拟机第 3 版:到底值不值得买?
  • (14)学习笔记:动手深度学习(Pytorch神经网络基础)
  • (ibm)Java 语言的 XPath API
  • (八)Flask之app.route装饰器函数的参数
  • (草履虫都可以看懂的)PyQt子窗口向主窗口传递参数,主窗口接收子窗口信号、参数。
  • (二开)Flink 修改源码拓展 SQL 语法
  • (附源码)springboot 个人网页的网站 毕业设计031623
  • (附源码)ssm旅游企业财务管理系统 毕业设计 102100
  • (附源码)计算机毕业设计ssm基于B_S的汽车售后服务管理系统
  • (四)进入MySQL 【事务】
  • (算法)Game
  • (图文详解)小程序AppID申请以及在Hbuilderx中运行
  • (详细文档!)javaswing图书管理系统+mysql数据库
  • (中等) HDU 4370 0 or 1,建模+Dijkstra。
  • (转)MVC3 类型“System.Web.Mvc.ModelClientValidationRule”同时存在
  • (转)自己动手搭建Nginx+memcache+xdebug+php运行环境绿色版 For windows版
  • .mp4格式的视频为何不能通过video标签在chrome浏览器中播放?
  • .NET / MSBuild 扩展编译时什么时候用 BeforeTargets / AfterTargets 什么时候用 DependsOnTargets?
  • .NET 给NuGet包添加Readme
  • @Autowired注解的实现原理
  • @selector(..)警告提示
  • [ vulhub漏洞复现篇 ] Django SQL注入漏洞复现 CVE-2021-35042
  • [ vulhub漏洞复现篇 ] ECShop 2.x / 3.x SQL注入/远程执行代码漏洞 xianzhi-2017-02-82239600