最近項目需要導入幾十年的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();
}
}