Mam plik Excel z 111 wierszy. Muszę pominąć pierwsze dwa wiersze arkusza, a następnie odczytać plik przy użyciu java i POI.Jak czytać plik Excela pomijając pierwsze dwa wiersze
Odpowiedz
trzeba pominąć dwa pierwsze rzędy za pomocą rownum()
.Tutaj jest przykładowy kod
HSSFWorkbook workBook = new HSSFWorkbook (fileSystem);
HSSFSheet sheet = workBook.getSheetAt (0);
Iterator<HSSFRow> rows = sheet.rowIterator();
while (rows.hasNext())
{
HSSFRow row = rows.next();
// display row number in the console.
System.out.println ("Row No.: " + row.getRowNum());
if(row.getRowNum()==0 || row.getRowNum()==1){
continue; //just skip the rows if row number is 0 or 1
}
}
Oto kompletny przykład
import org.apache.poi.hssf.usermodel.HSSFCell;
import org.apache.poi.hssf.usermodel.HSSFRichTextString;
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.poifs.filesystem.POIFSFileSystem;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.InputStream;
import java.util.Iterator;
public class POIExcelReader
{
/** Creates a new instance of POIExcelReader */
public POIExcelReader()
{}
@SuppressWarnings ("unchecked")
public void displayFromExcel (String xlsPath)
{
InputStream inputStream = null;
try
{
inputStream = new FileInputStream (xlsPath);
}
catch (FileNotFoundException e)
{
System.out.println ("File not found in the specified path.");
e.printStackTrace();
}
POIFSFileSystem fileSystem = null;
try
{
fileSystem = new POIFSFileSystem (inputStream);
HSSFWorkbook workBook = new HSSFWorkbook (fileSystem);
HSSFSheet sheet = workBook.getSheetAt (0);
Iterator<HSSFRow> rows = sheet.rowIterator();
while (rows.hasNext())
{
HSSFRow row = rows.next();
if(row.getRowNum()==0 || row.getRowNum()==1){
continue; //just skip the rows if row number is 0 or 1
}
// once get a row its time to iterate through cells.
Iterator<HSSFCell> cells = row.cellIterator();
while (cells.hasNext())
{
HSSFCell cell = cells.next();
System.out.println ("Cell No.: " + cell.getCellNum());
/*
* Now we will get the cell type and display the values
* accordingly.
*/
switch (cell.getCellType())
{
case HSSFCell.CELL_TYPE_NUMERIC :
{
// cell type numeric.
System.out.println ("Numeric value: " + cell.getNumericCellValue());
break;
}
case HSSFCell.CELL_TYPE_STRING :
{
// cell type string.
HSSFRichTextString richTextString = cell.getRichStringCellValue();
System.out.println ("String value: " + richTextString.getString());
break;
}
default :
{
// types other than String and Numeric.
System.out.println ("Type not supported.");
break;
}
}
}
}
}
catch (IOException e)
{
e.printStackTrace();
}
}
public static void main (String[] args)
{
POIExcelReader poiExample = new POIExcelReader();
String xlsPath = "c://test//test.xls";
poiExample.displayFromExcel (xlsPath);
}
}
Apache POI zapewnia dwa sposoby, aby uzyskać dostęp do wierszy i komórek w plik Excel. Jednym z nich jest iterator, który podaje wszystkie wpisy, drugi to pętla w górę według indeksu. (POI będzie również wskazywać wiersze/kolumny początkowe/końcowe/kolumny). Iterator jest często prostszy w użyciu, ale oba są równie szybkie.
Jeśli masz konkretne wymagania dotyczące wierszy do pobrania, proponuję użyć tego drugiego. Twój kod chciałby być coś takiego:
int FIRST_ROW_TO_GET = 2; // 0 based
Sheet s = wb.getSheetAt(0);
for (int i = FIRST_ROW_TO_GET; i < s.getLastRowNum(); i++) {
Row row = s.getRow(i);
if (row == null) {
// The whole row is blank
}
else {
for (int cn=row.getFirstCellNum(); cn<row.getLastCellNum(); cn++) {
Cell c = row.getCell(cn, Row.RETURN_BLANK_AS_NULL);
if (c == null) {
// The cell is empty
} else {
// Process the cell
}
}
}
}
cześć mam pytanie "jak czytać tylko ostatni wiersz tylko pierwsza komórka" proszę pomóż mi –
- 1. Pierwsze dwa ostatnie wiersze w pliku tekstowym
- 2. Wybierz rekordy pomijając wiersze w MS Access
- 3. Jak czytać plik pikle?
- 4. Jak usunąć pierwsze dwa wiersze i ostatnie cztery wiersze z pliku tekstowego z bash?
- 5. Jak liczyć puste wiersze podczas czytania z Excela
- 6. Jak czytać plik tekstowy w systemie Android?
- 7. Jak czytać cały plik w Ruby?
- 8. Android: jak czytać plik w bajtach?
- 9. R: Dlaczego plik read.table przestaje czytać plik?
- 10. Jak zliczyć wiersze z danymi w arkuszu Excela?
- 11. PHP - pierwsze dwa zdania tekstu?
- 12. Usuń pierwsze X wiersze bazy danych
- 13. Jak sparować co dwa wiersze pliku tekstowego z Bash?
- 14. Pierwsze dwa pierwsze słowa z ciągu znaków w php
- 15. Benchmarking plik utf8 czytać - wyjaśnienie różnic
- 16. n-dziecko na każde dwa wiersze tabeli
- 17. pierwsze dwa wyniki z polecenia ls
- 18. Python list - Prawda/Fałsz pierwsze dwa elementy?
- 19. CSS nie zmienia koloru pierwsze dwa charactor
- 20. Dlaczego najpierw czytać plik, a następnie sprawdzić?
- 21. odczytać plik Excela za pomocą Apache POI
- 22. Przeczytaj plik Excela na rdzeniu asp.net 1.0
- 23. Jak ustawić tekst w TextView na dwa wiersze?
- 24. Jak mogę dodać dwa wiersze w jednej komórce pdf?
- 25. Jak połączyć dwa wiersze w jeden wiersz w sql?
- 26. Jak czytać i wyświetlać plik w rozszerzeniu chrome
- 27. W Clojure 1.3, Jak czytać i pisać plik
- 28. osgi projekt jak czytać plik zasobów w pakiecie
- 29. Jak pobrać plik excela (.xls) z API w liście postmana?
- 30. Jak zaimportować plik Excela do bazy danych MySQL
Potrzebuję przeczytać zawartość. Xls i. Xlsx plik, który ma 9 kolumn i 100 wierszy. Treść odczytu musi zostać dodana do listy i wstawiona do pliku sql db jako wsadowego wsadu, a wartość musi zostać wstawiona do odpowiedniej kolumny. proszę pomóż mi !! – Priya