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

Excel中行列范围的转换

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

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

        public static Tuple<List<int>, List<string>> ConvertRowColumn(string rowRep, string colRep){List<int> rowIdxs = new List<int>();rowRep = rowRep.Replace(" ", "");colRep = colRep.Replace(" ", "");foreach (string item in rowRep.Split(',')){Match singleValM = Regex.Match(item, @"^(\d+)$");Match rangeValM = Regex.Match(item, @"^(\d+)-(\d+)$");if (singleValM.Success){int rowIdx = int.Parse(singleValM.Groups[1].Value);rowIdxs.Add(rowIdx);}else if (rangeValM.Success){int a = int.Parse(rangeValM.Groups[1].Value);int b = int.Parse(rangeValM.Groups[2].Value);int start = Math.Min(a, b);int end = Math.Max(a, b);for (int i = start; i <= end; i++){rowIdxs.Add(i);}}else{//报错,不能识别}}List<int> colIdxs = new List<int>();foreach (string item in colRep.Split(',')){Match singleValM = Regex.Match(item, @"^([a-z]+)$", RegexOptions.IgnoreCase);Match rangeValM = Regex.Match(item, @"^([a-z]+)-([a-z]+)$", RegexOptions.IgnoreCase);if (singleValM.Success){int colIdx = ColumnTitleToNumber(singleValM.Groups[1].Value);colIdxs.Add(colIdx);}else if (rangeValM.Success){int a = ColumnTitleToNumber(rangeValM.Groups[1].Value);int b = ColumnTitleToNumber(rangeValM.Groups[2].Value);int start = Math.Min(a, b);int end = Math.Max(a, b);for (int i = start; i <= end; i++){colIdxs.Add(i);}}else{//报错,不能识别}}rowIdxs.Sort();colIdxs.Sort();List<string> colTitles = new List<string>();foreach (int colIdx in colIdxs){colTitles.Add(ColumnNumberToTitle(colIdx));}Tuple<List<int>, List<string>> rowsCols = new Tuple<List<int>, List<string>>(rowIdxs, colTitles);return rowsCols;}private static int ColumnTitleToNumber(string columnTitle){columnTitle = columnTitle.ToUpper();int result = 0;for (int i = 0; i < columnTitle.Length; i++){result *= 26;result += columnTitle[i] - 'A' + 1;}return result;}private static string ColumnNumberToTitle(int columnNumber){string result = "";while (columnNumber > 0){int remainder = (columnNumber - 1) % 26;result = (char)(remainder + 'A') + result;columnNumber = (columnNumber - 1) / 26;}return result;}

相关文章:

Excel中行列范围的转换

将 行&#xff1a;1,4-5,8,11 列&#xff1a;a,c-e,f 这种写法转换成单元格地址的方法。 public static Tuple<List<int>, List<string>> ConvertRowColumn(string rowRep, string colRep){List<int> rowIdxs new List<int>();rowRep rowRep.…...

golang的类型断言

前言&#xff1a;原因很简单&#xff0c;写的代码panic了。报错如下。为此专门看下golang的类型断言。 “[PANIC]interface conversion: interface {} is string, not float64”。 1、类型断言(assertion) 所谓“类型断言”即判断一个变量是不是某个类型的实例(简单来讲就是判…...

监听dom变化,监听dom属性变化

一、利用new MutationObserver const config {attributes: true, // 监听属性变化childList: true, // 监听子节点变subtree: true // 监听后代元素变化};jianting new MutationObserver(() > {this.changeFun()});jianting.observe(dom, config) /监听 jianting.disconne…...

mfc140u.dll丢失怎么修复,mfc140u.dll文件有什么作用

今天我想和大家分享的是关于mfc140u.dll文件丢失的解决方法。在我们使用电脑的过程中&#xff0c;有时候会遇到一些错误提示&#xff0c;其中比较常见的就是“无法找到mfc140u.dll文件”。那么&#xff0c;这个文件是什么呢&#xff1f;它有什么作用呢&#xff1f; 首先&#…...

关于MySql update语句不能用子查询的解决办法

关于MySql update语句不能用子查询的解决办法 使用MySql数据库语法操作update时&#xff0c;第一时间想到的是一下写法&#xff1a; UPDATE purchase_request_detail SET convert_to_voucher_id2, convert_to_voucher_typeinventory-voucher WHERE detail_id IN (select deta…...

【WinForm】WinForm程序C#分屏显示

文章目录 前言1. 准备工作2. 步骤3 示例代码4. 结论 前言 在开发WinForm应用程序时&#xff0c;有时我们需要在另一个屏幕上显示与主界面内容相同的界面。本文将介绍如何使用C#克隆正在运行的界面&#xff0c;并在另一个屏幕上显示相同的内容。 1. 准备工作 在开始之前&…...

云安全—K8S API Server 未授权访问

0x00 前言 master节点的核心就是api服务&#xff0c;k8s通过REST API来进行控制&#xff0c;在k8s中的一切都可以抽象成api对象&#xff0c;通过api的调用来进行资源调整&#xff0c;分配和操作。 通常情况下k8s的默认api服务是开启在8080端口&#xff0c;如果此接口存在未授…...

nodejs+vue啄木鸟便民维修网站设计与实现-计算机毕业设计python-django-php

1、目的&#xff1a; 设计一个适用于便民家电维护的平台。该系统方便管理员对用户信息的管理&#xff0c;使用户在不掌握任何专业知识的前提下&#xff0c;可以方便快速的上手&#xff0c;因此项目应具有广泛使用人群。该课题应包括&#xff08;至少包括&#xff09;以下几个基…...

【数据结构】树形结构所有路径复原为链表

目录 1. 树形结构可视化 2. 树形结构转为链表 此目标是要还原树形结构的所有路径。树形结构是一种常见的数据结构&#xff0c;它表示元素之间层次关系。在树形结构中&#xff0c;每个节点可能拥有一个或多个子节点&#xff0c;形成了一个分层的结构。为了还原树形结构的路径&…...

linux杀毒软件下载、安装(在线安装、离线安装)

下载 ClamAVNet 离线安装 # 离线安装 rpm -ivh --prefix/usr/local/clamav clamav*linux.x86_64.rpm # 添加用户组和组成员 groupadd clamav useradd -g clamav clamav # 创建日志目录、病毒库目录和套接字目录 mkdir -p /usr/local/clamav/logs mkdir -p /usr/local/clamav/…...

系列五、映射文件xxxMapper.xml

一、概述 mapper映射文件是mybatis中最重要的部分&#xff0c;涉及到的细节也非常多。 1.1、parameterType 表示输入参数的类型。例如&#xff1a; <select id"getUserById" parameterType"integer" resultType"org.star.entity.model.UserDO&…...

【缓存】Spring全家桶中@CacheEvict无效情况共有以下几种

Spring全家桶中CacheEvict无效情况共有以下几种 一、背景介绍二、原因分析三、解决方案 一、背景介绍 SpringBoot中使用Cacheable注解缓存数据&#xff0c;使用CacheEvict注解删除缓存。但是在项目使用过程中&#xff0c;发现使用CacheEvict注解删除缓存无效。 拓展&#xff…...

P9117 [春季测试 2023] 涂色游戏

Portal. 维护每一行、每一列最后一次染色时染上的颜色以及时间戳即可。 时间复杂度 O ( T n ) O(Tn) O(Tn)。 #include <bits/stdc.h> using namespace std;const int maxn1e55; struct node{int c,t;}a[maxn],b[maxn];void solve() {int n,m,q;cin>>n>>…...

react如何进行项目配置代理

目录 一、前言 二、配置方法 三、总结 前言&#xff1a; 在使用React创建应用程序时&#xff0c;配置代理的目的是为了解决跨域请求的问题。跨域请求是指在浏览器中&#xff0c;一个站点的Web应用程序向另一个不同域名的站点发送请求。由于浏览器的安全策略&#xff0c;这些…...

2023杭州.云栖大会:计算,为了无法计算的价值

目录 前言 第一次参加云栖大会的印象 第二次至今参加云栖大会的感受 2023云栖大会介绍 这些年&#xff0c;我的工作、生活、关注的技术领域等发生的变化 对未来云栖大会的期待与建议 &#x1f388;个人主页&#xff1a;库库的里昂 &#x1f390;C/C领域新星创作者 &#…...

MIT6.5830 Lab1-GoDB实验记录(二)

MIT6.5830 Lab1-GoDB实验记录&#xff08;二&#xff09; – WhiteNights Site 标签&#xff1a;Golang, 数据库 接下来我们将完成tuple.go的缺失代码&#xff0c;并通过tuple_test.go的测试。 实验步骤 观察tuple.go 观察肯定是第一步&#xff0c;先打开tuple.go。 快300行代…...

设计模式—创建型模式之工厂模式

设计模式—创建型模式之工厂模式 工厂模式&#xff08;Factory Pattern&#xff09;提供了一种创建对象的最佳方式。我们不必关心对象的创建细节&#xff0c;只需要根据不同情况获取不同产品即可。 简单工厂模式 比如我们有造车的工厂&#xff0c;来生产车&#xff0c;我们先…...

N.B.缩略语的意思

阅读文献的时候&#xff0c;经常遇到N.B.这个缩略语&#xff0c;是表示“注意”的意思&#xff0c;它是nota bene的缩写&#xff0c;是拉丁短语。 例如&#xff1a; N.B. all Values are Hexadecimal...

SpringBoot源码透彻解析—自动装配

花点时间找到程序入口&#xff1a; 整个自动装配的流程总结如下&#xff1a; bean工厂后置处理器(ConfigurationClassPostProcessor) 扫描spring.factories和spring-autoconfigure-metadata.properties两个文件&#xff0c;将文件中的自动装配类信息抽象成Con…...

基于springboot实现疫情防控期间外出务工人员信息管理系统项目【项目源码+论文说明】

基于springboot疫情防控期间外出务工人员信息管理系统 摘要 网络的广泛应用给生活带来了十分的便利。所以把疫情防控期间某村外出务工人员信息管理与现在网络相结合&#xff0c;利用java技术建设疫情防控期间某村外出务工人员信息管理系统&#xff0c;实现疫情防控期间某村外出…...

Frida Hook Java层还原Android客户端签名算法

1. 这不是“调用API”&#xff0c;而是拆解签名生成的完整逻辑链 你有没有遇到过这种情况&#xff1a;App每次请求都带一个叫 api-sign 的字段&#xff0c;值像一串随机字符串&#xff0c;长度固定、格式规整&#xff0c;但无论你怎么翻网络请求日志、抓包重放、甚至改参数重…...

基于RLHF的论据语言改写:用强化学习优化文本得体性

1. 项目概述与核心价值在互联网的公共讨论空间里&#xff0c;论据的质量直接决定了对话的深度与有效性。我们常常会遇到一些观点本身有价值&#xff0c;但表达方式充满攻击性、偏见或粗俗语言的文本。直接删除这些内容可能损害言论自由&#xff0c;但放任不管又会污染讨论环境&…...

ContextMenuManager:Windows右键菜单终极管理指南,让你的电脑效率翻倍

ContextMenuManager&#xff1a;Windows右键菜单终极管理指南&#xff0c;让你的电脑效率翻倍 【免费下载链接】ContextMenuManager &#x1f5b1;️ 纯粹的Windows右键菜单管理程序 项目地址: https://gitcode.com/gh_mirrors/co/ContextMenuManager 你是否厌倦了Windo…...

Kerr相干态:从非线性量子光学到光子晶格模拟的实现路径

1. 引言&#xff1a;从经典光场到非线性量子相干态 在量子光学的研究中&#xff0c;相干态是一个基石性的概念。它最初由罗伊格劳伯在1960年代引入&#xff0c;用以描述激光器输出的光场。简单来说&#xff0c;一个理想的单模激光&#xff0c;其量子态就可以用一个相干态来极好…...

破解特征相关性难题:MVIM与CVIM如何提供更稳健的变量重要性评估

1. 项目概述&#xff1a;从“黑盒”到“可解释”的桥梁在数据科学和机器学习的日常工作中&#xff0c;我们常常面临一个核心矛盾&#xff1a;一方面&#xff0c;以XGBoost、深度神经网络为代表的复杂模型因其卓越的预测性能而备受青睐&#xff1b;另一方面&#xff0c;这些模型…...

B物理反常的全局拟合:有效场论与机器学习解析新物理信号

1. 项目概述&#xff1a;当B介子衰变“不听话”时&#xff0c;我们如何用数学语言寻找新物理&#xff1f;在粒子物理的精密前沿&#xff0c;标准模型&#xff08;Standard Model, SM&#xff09;一直是我们理解微观世界最成功的理论框架。然而&#xff0c;物理学家们从未停止过…...

机器翻译中的自校正方法:利用模型动态知识应对语义错位噪声

1. 项目概述&#xff1a;在嘈杂世界中学习翻译做机器翻译这行久了&#xff0c;最头疼的往往不是模型架构不够新&#xff0c;而是数据“不够干净”。我们每天打交道的数据&#xff0c;尤其是从互联网上爬取的海量平行语料库&#xff0c;比如大家熟知的ParaCrawl、CCAligned&…...

机器学习势函数结合DFT:揭示缺陷如何降低半赫斯勒化合物晶格热导率

1. 项目概述与核心问题在热电材料的研究领域&#xff0c;半赫斯勒化合物一直是个“明星选手”&#xff0c;它们拥有不错的电学性能&#xff0c;但一个长期困扰研究者的难题是&#xff1a;理论计算出的晶格热导率总是比实验测量值高出一大截。这可不是个小问题&#xff0c;晶格热…...

别再傻等下载了!手把手教你用wget离线部署sentence-transformers模型(以all-MiniLM-L6-v2为例)

离线部署sentence-transformers模型的终极指南&#xff1a;以all-MiniLM-L6-v2为例你是否曾在下载Hugging Face模型时遭遇网络中断&#xff0c;眼睁睁看着进度条卡在99%却无能为力&#xff1f;本文将彻底解决这一痛点&#xff0c;教你用wget命令行工具实现模型的离线部署。不同…...

AI企业参与国防采购的挑战、机遇与实操路线图

1. 项目概述&#xff1a;当AI遇见国防采购&#xff0c;一场静默的“双向奔赴”在硅谷的咖啡厅和五角大楼的简报室之间&#xff0c;正上演着一场深刻而复杂的对话。话题的核心&#xff0c;是人工智能这项被誉为“新时代电力”的技术&#xff0c;如何融入世界上最庞大、最严谨的采…...