Java POI에 Excel 행을 문자열로 변환하는 직접 내장 함수가 있습니까? "row.toString()"시도했지만 행의 메모리 위치를 반환했습니다.Java에서 Excel 행을 문자열 값으로 변환하는 방법은 무엇입니까?
답변
당신은 세포를 반복 할 수
Row row = (Row) rows.next();
Iterator cells = row.cellIterator();
while (cells.hasNext()) {
Cell cell = (Cell) cells.next();
...
}
그리고 당신이 사용할 수있는 셀의 문자열을 검색하기위한
:cell.getStringCellValue()
XSSFWorkbook workbook = new XSSFWorkbook(new FileInputStream(new File("path")));
FormulaEvaluator evaluator = workbook.getCreationHelper().createFormulaEvaluator();
Iterator<Cell> cellIterator = row.cellIterator();
while (cellIterator.hasNext())
{
Cell cell = cellIterator.next();
switch (evaluator.evaluateInCell(cell).getCellType())
{
case Cell.CELL_TYPE_NUMERIC:
double a = cell.getNumericCellValue();
break;
case Cell.CELL_TYPE_STRING:
String val = cell.getStringCellValue();
break;
}
}
당신은 자바 파일 클래스를 사용하여 시도 할 수 있습니다. 그것은 예컨대
경로에 취해 스트림을 반환Files.lines(Path path)
하는 방법이있다. 스트림을 사용하면 행을 분할하고 메서드를 적용 할 수 있습니다. 좀 더 적용 가능성이 높은 다른 메소드에 대해서는 API를 살펴볼 수 있습니다.
int x = 5;
int y = 8;
// open your File
Workbook wb = new XSSFWorkbook(file);
// Get your excel sheet nr. 1
XSSFSheet sheet = Workbook.getSheetAt(0);
// get your Row from Y cordinate
Row yourRow = sheet.getRow(y);
// get your Cell from X cordinate
Cell yourCell = cell = yourRow.getCell(x);
// be sure that the pointingCell is an String or else it will catch Exception.
String cellString = cell.getStringCellValue();
'Excel' 파일에서이 메서드를 사용하는 것이 좋습니다. Excel은 바이너리 파일 ('* .xls')이거나 디렉토리 구조 ('* .xls)에 여러 개의 XML 파일이 들어있는'ZIP' 아카이브입니다.xlsx')하지만 결코 텍스트 행으로 해석 될 수있는 파일은 아닙니다. –
망가은 다음하여 특정 셀을 선택, 모든 세포/라인을 통해 반복 . 문서를 읽는 것은 종종 도움이됩니다!
: 당신은 같은 것을 할 것 -이 같은 쉼표 (!하지 당신은 또한 일을 탈출하기 위해 필요로 CSV를 생성하는 좋은 방법 주)와 함께 모든 셀에 가입 간단한 무언가를 할 가정
// Load the file, get the first sheet
Workbook wb = WorkbookFactory.create(new File("input.xls"));
Sheet sheet = wb.getSheetAt(0);
// To turn numeric and date cells into friendly formatted strings
DataFormatter formatter = new DataFormatter();
// Process every row
for (Row row : sheet) {
StringBuffer text = new Stringbuffer();
// Turn each cell into a string, and append
for (Cell : row) {
if (! text.isEmpty()) { text.append(", "); }
text.append(formatter.formatCellValue(cell));
}
// TODO Do something useful with the string
String rowAsText = text.toString();
}
// Tidy up
wb.close();
당신은 어쩌면 더 편리 코드를 얻기 위해 java8 foreach
을 사용할 수
try (
InputStream inputStream = RowToString.class.getResourceAsStream("excel.xlsx");
Workbook workbook = WorkbookFactory.create(inputStream);
) {
Sheet sheet = workbook.getSheetAt(0);
List<String> rows = new ArrayList<>();
sheet.forEach(row -> {
StringJoiner joiner = new StringJoiner("|");
row.forEach(cell -> joiner.add(cell.toString()));
rows.add(joiner.toString());
});
rows.forEach(System.out::println);
}
StringJoiner
는 값을 연결하는 좋은 선택입니다. 셀 값을 얻으려면 toString
이 정상적으로 작동합니다. toString
은 모든 셀 유형의 적절한 값을 가져옵니다. 유일한 문제는 toString
이 수식을 해결하지 않을 것이므로 수식 자체를 얻을 수 있다는 것입니다. 그러나 자신의 필요에 맞게 코드를 적용 할 수 있습니다.
- 1. java에서 문자열을 ascii 값으로 변환하는 방법은 무엇입니까?
- 2. java에서 문자열 날짜를 Timestamp로 변환하는 방법은 무엇입니까?
- 3. Java에서 int 값을 long 값으로 변환하는 방법은 무엇입니까?
- 4. 16 진수를 java에서 ASCII 값으로 변환하는 방법은 무엇입니까?
- 5. 바이너리 (문자열)를 float 값으로 변환하는 방법은 무엇입니까?
- 6. Java에서 문자열을 숫자로 변환하는 방법은 무엇입니까?
- 7. Java에서 문자열 3.0103E-7을 0.00000030103으로 변환하는 방법?
- 8. 행을 행으로 변환하는 방법은 무엇입니까?
- 9. 행을 배열로 변환하는 방법은 무엇입니까?
- 10. excel에서 쉼표로 구분 된 값으로 셀 값을 변환하는 방법은 무엇입니까?
- 11. java에서 문자열을 XML로 변환하는 방법은 무엇입니까?
- 12. Excel 시트의 행을 읽고 자르는 방법은 무엇입니까?
- 13. 특정 값으로 시작하는 두 셀 사이의 열에 행을 변환하는 방법은 무엇입니까?
- 14. NSDecimal 값을 NSInteger 값으로 변환하는 방법은 무엇입니까?
- 15. 문자열 값을 10 진수로 변환하는 방법은 무엇입니까?
- 16. 여러 값으로 여러 행을 업데이트하는 방법은 무엇입니까?
- 17. 하나의 열 값으로 행을 필터링하는 방법은 무엇입니까?
- 18. Excel 2003 파일을 Excel 2003으로 자동 변환하는 방법
- 19. NSInteger를 이진 (문자열) 값으로 변환하는 방법
- 20. NSString 문자열 값에서 ASCII 값으로 변환하는 방법
- 21. Pentaho, int 값을 문자열 값으로 변환하는 방법
- 22. oracle.sql.TIMESTAMPTZ를 문자열 값으로 변환하는 데 문제가 있습니다.
- 23. 16 진수 IP를 Java에서 변환하는 방법은 무엇입니까?
- 24. Java에서 Point []를 ArrayOfPoint로 변환하는 방법은 무엇입니까?
- 25. Java에서 utf8로 ANSI를 변환하는 방법은 무엇입니까?
- 26. Java에서 XML을 JSON으로 변환하는 방법은 무엇입니까?
- 27. Java에서 벡터를 래스터에서 벡터로 변환하는 방법은 무엇입니까?
- 28. JAVA에서 이진 값을 ASCII로 변환하는 방법은 무엇입니까?
- 29. Java가 Java에서 LinkedList를 ArrayList로 변환하는 방법은 무엇입니까?
- 30. Java에서 문자열을 함수로 변환하는 방법은 무엇입니까?
셀 단위로 셀을 읽은 다음 문자열 – SpringLearner
@ SpringLearner에 추가하십시오. 이미 그 작업을하고 있지만 작동합니다.하지만 중첩 루프를 피하여 솔루션을 최적화하고 싶습니다. – rock
@andrew 이유가 무엇입니까? 중첩 루프의 문제점은 무엇입니까? 성능 문제가 있습니까? – sisve