简介:包含:获取单元格合并信息GetMergedCellAddress、获取引用单元格字符串ConvertAddressToString、获取单元格字符串格式内容CellValueToString

public class ExcelHelper
{
/// <summary>
/// Return cell's CellRangeAddress if that is a merged cell, otherwise return null
/// </summary>
/// <param name="cell">the cell will be checked</param>
/// <returns>the cell's CellRangeAddress</returns>
public static CellRangeAddress GetMergedCellAddress(ICell cell)
{
//not merged cell
if (cell.IsMergedCell == false)
return null; int MergedRegionsNum = cell.Sheet.NumMergedRegions;
for(int index = ; index < MergedRegionsNum; index++)
{
CellRangeAddress address = cell.Sheet.GetMergedRegion(index);
if (address.FirstRow == cell.RowIndex && address.FirstColumn == cell.ColumnIndex)
return address;
} //no match
return null;
} /// <summary>
/// 将Excel行列索引号(从0开始)转换为引用地址,分非R1C1格式(默认)和R1C1格式
/// </summary>
/// <param name="rowIndex">行索引号(从0开始)</param>
/// <param name="columnIndex">列索引号(从0开始)</param>
/// <param name="isR1C1Format">是否R1C1格式(默认为否)</param>
/// <returns>Excel单元格引用地址字符串</returns>
public static string ConvertAddressToString(int rowIndex, int columnIndex, bool isR1C1Format = false)
{
if (rowIndex < || columnIndex < )
throw new IndexOutOfRangeException("行/列索引号不可为负数");
if (isR1C1Format)
//R1C1格式行号在前列号在后 eg:R2C3 第2行第3列
return string.Format("R{0}C{1}", rowIndex + , columnIndex + );
else
{
//非R1C1格式列号在前行号在后 eg:C5 第5行第3列
//convert column num to letter
int num = columnIndex;
string colAddress = string.Empty;
while(num > -)
{
int remainder = num >= ? num % : num;
colAddress = (char)(remainder + ) + colAddress;
num = (num / ) - ;
} return string.Format("{1}{0}", rowIndex + , colAddress);
}
} /// <summary>
/// 获取Excel单元格引用地址,分非R1C1格式(默认)和R1C1格式
/// </summary>
/// <param name="cell">引用单元格</param>
/// <param name="isR1C1Format">是否R1C1格式(默认为否)</param>
/// <returns>Excel单元格引用地址字符串</returns>
public static string ConvertAddressToString(ICell cell, bool isR1C1Format = false)
{
return ConvertAddressToString(cell.RowIndex, cell.ColumnIndex, isR1C1Format);
} /// <summary>
/// 获取Excel单元格值(字符串格式)
/// </summary>
/// <param name="cell">单元格</param>
/// <returns>单元格字符串格式值内容</returns>
public static string CellValueToString(ICell cell)
{
if (cell == null)
return null;
switch (cell.CellType)
{
case CellType.Blank:
return string.Empty;
case CellType.String:
return cell.StringCellValue;
case CellType.Boolean:
return cell.BooleanCellValue.ToString();
case CellType.Error:
return cell.ErrorCellValue.ToString();
case CellType.Formula:
return cell.CellFormula;
case CellType.Numeric:
case CellType.Unknown:
default:
return cell.ToString();
}
}
}

使用NPOI时写的几个辅助方法的更多相关文章

  1. 分享一个异步任务在遇到IO异常时支持递归回调的辅助方法

    public void TryAsyncActionRecursively<TAsyncResult>( string asyncActionName, Func<Task<T ...

  2. 004.MVC视图、辅助方法

    一.视图基础- 视图定义: 用户界面,是显示应用程序用户界面(UI)组件 Web应用程序:页面 作用: 1.输出/显示模型数据 2.出入提交 视图建议在View文件夹位置存储视图 视图引擎(了解):本 ...

  3. 32-HTML辅助方法

    顾名思义,HTML辅助方法(HTML Helper)就是用来辅助产生HTML之用,在开发View的时候一定会面对许多HTML标签,处理这些HTML的工作非常繁琐,为了降低View的复杂度,可以使用HT ...

  4. HTML辅助方法

    顾名思义,HTML辅助方法(HTML Helper)就是用来辅助产生HTML之用,在开发View的时候一定会面对许多HTML标签,处理这些HTML的工作非常繁琐,为了降低View的复杂度,可以使用HT ...

  5. MVC 之HTML辅助方法

    顾名思义,HTML辅助方法(HTML Helper)就是用来辅助产生HTML之用,在开发View的时候一定会面对许多HTML标签,处理这些HTML的工作非常繁琐,为了降低View的复杂度,可以使用HT ...

  6. MVC HTML辅助方法

    HTML辅助方法(HTML Helper)用来辅助产生HTML,在开发View的时候会面对许多HTML标签,处理这些HTML标签非常繁琐,为了降低View的复杂度,可以使用HTML辅助方法帮助你产生一 ...

  7. 【未完待续】MVC 之HTML辅助方法

    顾名思义,HTML辅助方法(HTML Helper)就是用来辅助产生HTML之用, 在开发View的时候一定会面对许多HTML标签,处理这些HTML的工作非常繁琐,为了降低View的复杂度,可以使用H ...

  8. Livid : 在 26 岁时写给 18 岁的自己

    转载自: https://livid.v2ex.com/essays/2012/01/24/a-letter-from-26-to-18.html 在 26 岁时写给 18 岁的自己 Jan 24, ...

  9. MVC学习系列4--@helper辅助方法和用户自定义HTML方法

    在HTML Helper,帮助类的帮助下,我们可以动态的创建HTML控件.HTML帮助类是在视图中,用来呈现HTML内容的.HTML帮助类是一个方法,它返回的是string类型的值. HTML帮助类, ...

随机推荐

  1. 一 梳理 从 HDFS 到 MR。

      MapReduce 不仅仅是一个工具,更是一个框架.我们必须拿问题解决方案去适配框架的 map 和 reduce 过程   很多情况下,需要关注 MapReduce 作业所需要的系统资源,尤其是集 ...

  2. 3D打印技术之切片引擎(6)

    [此系列文章基于熔融沉积( fused depostion modeling, FDM )成形工艺] 这一篇文章说一下填充算法中的网格填充.网格填充在现有的较为成熟的引擎中是非常普遍的:skeinfo ...

  3. [Python] Statistical analysis of time series

    Global Statistics: Common seen methods as such 1. Mean 2. Median 3. Standard deviation:  the larger ...

  4. Android自定义组件系列【14】——Android5.0按钮波纹效果实现

    今天任老师发表了一篇关于Android5.0中按钮按下的波纹效果实现<Android L中水波纹点击效果的实现>,出于好奇我下载了源代码看了一下效果,正好手边有一个Nexus手机,我结合实 ...

  5. Codeforces 701A. Cards(水)

    A. Cards time limit per test 1 second memory limit per test 256 megabytes input standard input outpu ...

  6. MHP 宿舍摄像头在门卫显示方案

    通过VPN拨入公司内网,实现访问外网摄像头. 1.  宿舍和MHP公司各增加一条上网线路(可用移动) 2.宿舍处理:  2台带TF卡 摄像头,加入到萤石云端   130万摄像头+64G TF卡 3.宿 ...

  7. 如何修改Web.Config里面的值

    0.先添加 <add key="MAXNUM" value="6" /> 1.读取值 string maxNum = ConfigurationMa ...

  8. Redis 数据持久化的方案的实现

    原文:Redis 数据持久化的方案的实现 版权声明:m_nanle_xiaobudiu https://blog.csdn.net/m_nanle_xiaobudiu/article/details/ ...

  9. Mysql学习总结(3)——MySql语句大全:创建、授权、查询、修改等

    一.用户创建.权限.删除 1.连接MySql操作 连接:mysql -h 主机地址 -u 用户名 -p 用户密码 (注:u与root可以不用加空格,其它也一样) 断开:exit (回车) 打开cmd, ...

  10. Webhook

    Webhook就是用户通过自定义回调函数的方式来改变Web应用的一种行为,这些回调函数可以由不是该Web应用官方的第三方用户或者开发人员来维护,修改.通过Webhook,你可以自定义一些行为通知到指定 ...