码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • Excel中行列范围的转换


    将 行:1,4-5,8,11 列:a,c-e,f

    这种写法转换成单元格地址的方法。

    1. public static Tupleint>, List<string>> ConvertRowColumn(string rowRep, string colRep)
    2. {
    3. List<int> rowIdxs = new List<int>();
    4. rowRep = rowRep.Replace(" ", "");
    5. colRep = colRep.Replace(" ", "");
    6. foreach (string item in rowRep.Split(','))
    7. {
    8. Match singleValM = Regex.Match(item, @"^(\d+)$");
    9. Match rangeValM = Regex.Match(item, @"^(\d+)-(\d+)$");
    10. if (singleValM.Success)
    11. {
    12. int rowIdx = int.Parse(singleValM.Groups[1].Value);
    13. rowIdxs.Add(rowIdx);
    14. }
    15. else if (rangeValM.Success)
    16. {
    17. int a = int.Parse(rangeValM.Groups[1].Value);
    18. int b = int.Parse(rangeValM.Groups[2].Value);
    19. int start = Math.Min(a, b);
    20. int end = Math.Max(a, b);
    21. for (int i = start; i <= end; i++)
    22. {
    23. rowIdxs.Add(i);
    24. }
    25. }
    26. else
    27. {
    28. //报错,不能识别
    29. }
    30. }
    31. List<int> colIdxs = new List<int>();
    32. foreach (string item in colRep.Split(','))
    33. {
    34. Match singleValM = Regex.Match(item, @"^([a-z]+)$", RegexOptions.IgnoreCase);
    35. Match rangeValM = Regex.Match(item, @"^([a-z]+)-([a-z]+)$", RegexOptions.IgnoreCase);
    36. if (singleValM.Success)
    37. {
    38. int colIdx = ColumnTitleToNumber(singleValM.Groups[1].Value);
    39. colIdxs.Add(colIdx);
    40. }
    41. else if (rangeValM.Success)
    42. {
    43. int a = ColumnTitleToNumber(rangeValM.Groups[1].Value);
    44. int b = ColumnTitleToNumber(rangeValM.Groups[2].Value);
    45. int start = Math.Min(a, b);
    46. int end = Math.Max(a, b);
    47. for (int i = start; i <= end; i++)
    48. {
    49. colIdxs.Add(i);
    50. }
    51. }
    52. else
    53. {
    54. //报错,不能识别
    55. }
    56. }
    57. rowIdxs.Sort();
    58. colIdxs.Sort();
    59. List<string> colTitles = new List<string>();
    60. foreach (int colIdx in colIdxs)
    61. {
    62. colTitles.Add(ColumnNumberToTitle(colIdx));
    63. }
    64. Tupleint>, List<string>> rowsCols = new Tupleint>, List<string>>(rowIdxs, colTitles);
    65. return rowsCols;
    66. }
    67. private static int ColumnTitleToNumber(string columnTitle)
    68. {
    69. columnTitle = columnTitle.ToUpper();
    70. int result = 0;
    71. for (int i = 0; i < columnTitle.Length; i++)
    72. {
    73. result *= 26;
    74. result += columnTitle[i] - 'A' + 1;
    75. }
    76. return result;
    77. }
    78. private static string ColumnNumberToTitle(int columnNumber)
    79. {
    80. string result = "";
    81. while (columnNumber > 0)
    82. {
    83. int remainder = (columnNumber - 1) % 26;
    84. result = (char)(remainder + 'A') + result;
    85. columnNumber = (columnNumber - 1) / 26;
    86. }
    87. return result;
    88. }

  • 相关阅读:
    搭建RabbitMQ消息服务,整合SpringBoot实现收发消息
    STM32按键状态机2——状态简化与增加长按功能
    记录一下flume中因为taildir_position.json因位置不对导致数据无法从kafka被采到hdfs上的问题
    2021年数维杯数学建模A题外卖骑手的送餐危机求解全过程文档及程序
    本地生活服务平台有哪些?哪个靠谱?
    LinkedList源码分析
    Java毕设项目淮安市教育局职业教研室技能竞赛计算机(附源码+系统+数据库+LW)
    实战演练,使用硬raid卡制作“raid”阵列
    Ribbon 添加右侧区域菜单项
    实操演练 | 批量插入的三种方式
  • 原文地址:https://blog.csdn.net/weixin_43483847/article/details/134162780
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号