NPOI 날짜 문자열 변환 문제
4770 단어 poi
/// <summary>
/// EXCEL DataTable
/// </summary>
protected DataTable ImportDataTableFromExcel(System.IO.Stream excelFileStream, string sheetName, int headerRowIndex) {
//
NPOI.HSSF.UserModel.HSSFWorkbook workbook = new NPOI.HSSF.UserModel.HSSFWorkbook(excelFileStream);
// sheet
NPOI.SS.UserModel.ISheet sheet = workbook.GetSheet(sheetName);
if (sheet == null)
return null;
DataTable table = new DataTable();
NPOI.SS.UserModel.IRow headerRow = sheet.GetRow(headerRowIndex);
int cellCount = headerRow.LastCellNum;
//
for (int i = headerRow.FirstCellNum; i < cellCount; i++) {
DataColumn column = new DataColumn(headerRow.GetCell(i).StringCellValue);
table.Columns.Add(column);
}
for (int i = (sheet.FirstRowNum + 1); i <= sheet.LastRowNum; i++) {
NPOI.SS.UserModel.IRow row = sheet.GetRow(i);
DataRow dataRow = table.NewRow();
if (row != null) {
for (int j = row.FirstCellNum; j < cellCount; j++) {
if (row.GetCell(j) == null)
dataRow[j] = "";
else {
ICell cell = row.GetCell(j);
//Cell NUMERIC , IsCellDateFormatted ,
if (cell.CellType == CellType.NUMERIC && DateUtil.IsCellDateFormatted(cell)) dataRow[j] = cell.DateCellValue.ToString("yyyy/MM/dd"); else { dataRow[j] = row.GetCell(j).ToString(); }
}
}
table.Rows.Add(dataRow);
}
}
excelFileStream.Close();
return table;
}
이것은 Excel 파일을 DataTable로 가져오는 일반적인 방법입니다.DateUtil을 통해IsCellDateFormatted 방법은 셀이 날짜 형식인지, 날짜 형식인지는 셀을 통해 판단할 수 있습니다.DateCellValue 셀의 날짜 값을 가져옵니다.그런 다음 원하는 문자열 형식으로 쉽게 변환할 수 있습니다.그리고 DateUtil.IsCellDateFormatted 방법의 매개 변수가 비NUMERIC이면 오류가 발생하므로 호출하기 전에 CellType이 NUMERIC인지 확인하십시오.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
POI Excel 사용자 정의 날짜 형식 읽기 (인스턴스 코드)POI로 Excel 데이터 읽기: (버전 번호: POI3.7) 1. Excel 읽기 2, Excel 데이터 처리: Excel 저장 날짜, 시간은 모두 수치 형식으로 저장되며, 읽을 때 POI가 먼저 수치 유형인지 아...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.