1
다음 코드를 생성하여 프로젝트의 Java POI로 셀 POI의 셀 내용을 가져옵니다.다른 형식으로 Apache POI의 날짜 셀 내용 가져 오기
이 코드를 제출하는 file.xls가 있습니다. 출력에서이 형식으로 셀에있는 날짜를 가져올 수 있는지,이 Tue Apr 21 00:00:00 BST 2015처럼 확장되지 않았는지를 알고 싶지만 간단히 : 20/04/20, how 그럴 수있어?
import java.io.File;
import java.io.FileInputStream;
import java.util.Iterator;
import org.apache.poi.ss.usermodel.Cell;
import org.apache.poi.ss.usermodel.Row;
import org.apache.poi.hssf.usermodel.HSSFRow;
import org.apache.poi.hssf.usermodel.HSSFSheet;
import org.apache.poi.hssf.usermodel.HSSFWorkbook;
import org.apache.poi.hssf.usermodel.HSSFDateUtil;
public class Readsheet
{
static HSSFRow row;
public static void main(String[] args) throws Exception
{
FileInputStream fis = new FileInputStream(
new File("test2.xls"));
HSSFWorkbook workbook = new HSSFWorkbook(fis);
HSSFSheet spreadsheet = workbook.getSheetAt(0);
Iterator <Row> rowIterator = spreadsheet.iterator();
while (rowIterator.hasNext())
{
row = (HSSFRow) rowIterator.next();
Iterator <Cell> cellIterator = row.cellIterator();
while (cellIterator.hasNext())
{
Cell cell = cellIterator.next();
switch (cell.getCellType())
{
case Cell.CELL_TYPE_NUMERIC:
if (DateUtil.isCellDateFormatted(cell)) {
System.out.println(cell.getDateCellValue());
} else {
System.out.println(cell.getNumericCellValue());
}
break;
case Cell.CELL_TYPE_STRING:
System.out.print(cell.getStringCellValue() + " \t\t ");
break;
case Cell.CELL_TYPE_BOOLEAN:
System.out.println(cell.getBooleanCellValue() + " \t\t ");
break;
case Cell.CELL_TYPE_FORMULA:
System.out.println(cell.getCellFormula() + " \t\t ");
break;
case Cell.CELL_TYPE_BLANK:
System.out.println();
break;
}
}
System.out.println();
}
fis.close();
}
}
감사합니다. 그것은 엑셀 파일에 지정된 동일한 형식으로 당신에게 cellValue
변수에 cell
값을 줄 것이다
String cellValue = new DataFormatter().formatCellValue(cell);
-
코드 대신 무엇을 사용합니까? 나는 그렇게 : '스위치 (cell.getCellType()) { 경우 Cell.CELL_TYPE_NUMERIC :. \t \t 새로운 DataFormatter() formatCellValue (셀); \t if (DateUtil.isCellDateFormatted (cell)) { System.out.println (cell.getDateCellValue() + "\ t \ t")); } else { System.out.println (cell.getNumericCellValue() + "\ t \ t"); } ' –
알겠습니다. 나는 이것을 넣었습니다. 'System.out.println (새 DataFormatter(). formatCellValue (cell) + "\ t \ t"); ' 이제 코드가 올바르게 작동합니다! 대단히 감사합니다. –
@Lost_in_the_code 의심의 여지를 제거하기위한 답을 업데이트했습니다. 그것이 당신의 질문을 해결했다면 대답을 승인하십시오. –