最近项目需要导入几十年的Excel报表,还是使用自己熟悉的NPOI开源插件,我觉得它操作Excel的功能还是挺强大的!
但是最近遇到一个问题,单元格的坐标设置了自定义格式度分秒(###º##.###'),尝试了很多方法都是获取到一个整数,没法转换正确的坐标。
经过了两天的折腾,终于在微的搜索搜到了答案(stackoverflow),下面是我的测试代码:
protected void Button2_Click(object sender, EventArgs e)
{
string path = Server.MapPath("~\\Public\\test1.xls");
if (System.IO.File.Exists(path)) //判断文件是否存在
{
FileStream fs = File.OpenRead(path);
IWorkbook hssfworkbook;
try
{
hssfworkbook = new HSSFWorkbook(fs);
ISheet sheet = hssfworkbook.GetSheetAt(0);//读取第一个sheet
IEnumerator rows = sheet.GetRowEnumerator();
//得到Excel工作表的行
IRow headerRow = sheet.GetRow(0);
ICell cell = headerRow.GetCell(0);
string formatString = cell.CellStyle.GetDataFormatString();
string value = cell.NumericCellValue.ToString(formatString);
}
catch
{
}
fs.Close();
fs.Dispose();
}
}