2013-06-11 2 views
0
def Reader = new CSVReader(new FileReader("/Users/me/myfile.csv")); 
while ((row = Reader.readNext()) != null) { 

Как это сделать с тем же форматом для файла xlsx. Я просмотрел некоторые параметры, такие как POI, но я не уверен, как сделать то, что у меня есть. В примерах, которые я видел, по-видимому, требуется дополнительный код для извлечения значения из строки. В моем текущем случае, с opencsv, я просто получаю строку, которая является String [], которую я могу затем использовать, как это значение = строка [index]Анализ файла xlsx по строке в строку []

ответ

2

Xslx - это двоичный формат, поэтому вы не можете его прочитать. были простым текстом и раскалывались на что-то.

Вам необходимо использовать POI или другую библиотеку, чтобы читать файлы Excel. Если вы используете POI наилучшего способ реализации коды выглядит следующим образом:

FileInputStream file = new FileInputStream(new File("/Users/me/myfile.xsls")); 
HSSFWorkbook workbook = new HSSFWorkbook(file); 
HSSFSheet sheet = workbook.getSheetAt("name of sheet"); 
for(Row row : sheet.iterator()) { 
//reading new row 
Cell cell = row.getCell(<your index here>) 
//then you can read cell with cell.getStringCellValue() 
} 

Надеется, что это помогает

+0

спасибо! это полезно в качестве отправной точки, но есть ли способ сначала преобразовать каждую строку, возможно, используя итератор в строку [], так что мне не нужно переписывать большой объем кода, который обращается к значениям, подобным этой строке [index]? – Lemonio

+0

Конечно, просто прочитайте все возможные 256 столбцов и поместите это в 'новый массив String [256]' –

+0

, почему 256? является то, что excel max или что-то еще? ну я думаю, что у меня 112, в любом случае String [i] = row.getCell (i)? проблема с этим я буду помещать в объект ячейки не строку/int так Я думаю, я мог бы пойти String [i] = row.getCell (i) .toString()? – Lemonio

Смежные вопросы