Я хочу, чтобы извлечь данные из Excel в MySQL, но в начале я хочу только, чтобы прочитать файл, чтобы я использовать код ниже:Извлечение данных из Excel в MySQL в Java
@RestController
public class ExtractDataController {
protected String[] celluls;
@RequestMapping(value = "/readExcel", method = RequestMethod.GET)
public String processExcel()
{
try {
InputStream ExcelFileToRead = new FileInputStream("Test.xlsx");
//définir l'objet workbook
XSSFWorkbook wb = new XSSFWorkbook(ExcelFileToRead);
//Itérer sur le nombre de sheets
for(int i=0;i<wb.getNumberOfSheets();i++)
{
XSSFSheet sheet = wb.getSheetAt(i);
//Itérer sur les lignes
for(int k=0;k<sheet.getLastRowNum();k++)
{
XSSFRow ligne = sheet.getRow(k);
celluls = new String[ligne.getLastCellNum()];
for(int j=0;j<ligne.getLastCellNum();j++){
if(ligne.getCell(j).getCellType() == 0)
celluls[j] = ""+ligne.getCell(j).getNumericCellValue();
else if(ligne.getCell(j).getStringCellValue().equals("/0"))
celluls[j] = ""+0;
else if(!ligne.getCell(j).getStringCellValue().equals("NIL") && !ligne.getCell(j).getStringCellValue().equals("NULL") && !ligne.getCell(j).getStringCellValue().equals("/0"))
{celluls[j] = ligne.getCell(j).getStringCellValue();
System.out.println(celluls[j]);
}
else celluls[j] = null;
System.out.println(celluls[j]);
}
}
}} catch (Exception e) {
System.err.println("Erreur");
// TODO Auto-generated catch block
e.printStackTrace();
}
return "data extracted successfully";
}}
Теперь файл Test .xsls имеет всего 2 строки и 1 лист, чтобы проверить код, но когда я запускаю приложение, у меня первая строка дублируется, и она не читает второй.
Вот данные моего файла
Country cc ndc RS
France 36 123 roaming international
Maroc 12 145 roaming international
И вот что я получаю
Country
Country
cc
cc
ndc
ndc
RS
RS
France
France
36.0
123.0
roaming international
roaming international
Country
Country
cc
cc
ndc
ndc
RS
RS
France
France
36.0
123.0
roaming international
roaming international
Любые идеи, пожалуйста?
Да, вы правы, жаль, что я не обратил внимания –
Зачем это делать на Java и почему все с нуля? Существует [Excel версия Mysql] (http://www.mysql.de/why-mysql/windows/excel/), или вы можете подключиться к MySQL с помощью ODBC. – Stefan
Вы получаете повторяющиеся значения, потому что у вас есть два 'System.out.println'? – m4ktub