博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Excel单元格列名转化成函数
阅读量:6787 次
发布时间:2019-06-26

本文共 3252 字,大约阅读时间需要 10 分钟。

///    /// Excel形式的列变换   ///     public class ExcelCRHelper    {        private const string ALPHABET_UPPER = "ABCDEFGHIGKLMNOPQRSTUVWXYZ";        ///         /// 形如(B4)的单元格的列号提取         ///         /// 
public static int ExtractColIndex(string strColRow) { int iCol = -1; Regex reg = new Regex("[A-Z]+"); Match m = reg.Match(strColRow); if (m.Success && m.Value !=null) { iCol = 0; if (m.Value.Length == 1) { iCol = ALPHABET_UPPER.IndexOf(m.Value); } else if (m.Value.Length > 1) { for (int i = 0; i < m.Value.Length; i++) { if (i == m.Value.Length - 1) { iCol += ALPHABET_UPPER.IndexOf(m.Value[i]); } else { int iBase = Convert.ToInt32( Math.Pow(26, m.Value.Length - i - 1)); iCol += iBase * (ALPHABET_UPPER.IndexOf(m.Value[i]) + 1); } } } } return iCol; } /// /// 形如(B4)的单元格的行号提取 /// ///
public static int ExtractRowIndex(string strColRow) { int iRow = -1; Regex reg = new Regex("[\\d]+"); Match m = reg.Match(strColRow); if (m.Success && m.Value != null) { try { iRow = Convert.ToInt32(m.Value) - 1; } catch { } } return iRow; } /// /// 根据列号转换成列名(如:3-->D) /// ///
public static string GetColumnName(int colIndex) { if (colIndex < 0) return ""; string colName = ""; if (colIndex < 26) { colName += ALPHABET_UPPER[colIndex]; } else { List
lstIndex = new List
(); int remainder = colIndex % 26; colIndex = Convert.ToInt32(Math.Floor(colIndex / 26.0)); lstIndex.Add(remainder); while (colIndex > 26) { remainder = colIndex % 26; colIndex = Convert.ToInt32(Math.Floor(colIndex / 26.0)); lstIndex.Add(remainder); } if (colIndex > 0) { colName += ALPHABET_UPPER[colIndex - 1]; } for (int i = lstIndex.Count - 1; i >= 0; i--) { if (i == 0) { colName += ALPHABET_UPPER[lstIndex[i]]; } else { colName += ALPHABET_UPPER[lstIndex[i] -1]; } } } return colName; } }

 

 

转载于:https://www.cnblogs.com/xiashengwang/archive/2012/03/20/2578785.html

你可能感兴趣的文章
高可用、高扩展性、负载均衡
查看>>
VIM用法
查看>>
oscache.properties文件配置
查看>>
新建索引的一些原则
查看>>
redis发布了集群版3.0.0 beta
查看>>
使用Gradle在嵌入式Web容器Jetty中运行Web应用
查看>>
100-98
查看>>
Innodb中的事务隔离级别和锁的关系
查看>>
算法:请找出数组中的某个数,它的左侧数字相加之和等于右边。
查看>>
vi / vim文档编辑器画图详解
查看>>
Oracle基本语句实例代码介绍
查看>>
excel表数据导入到mysql数据库中(自己做的练习保留)
查看>>
bash 函数使用,实现模块化编程
查看>>
LVS实现负载均衡
查看>>
LAMP架构下安装Discuz!论坛
查看>>
shell
查看>>
正则表达式
查看>>
我的友情链接
查看>>
spring MVC的第一次记录
查看>>
js获取 X-X-X N 天后 是 X年X月X日
查看>>