У меня есть 2 класса
1) Сначала используется для создания Excel
2) Чтобы добавить данные в тот же Excel
Но проблема в том, что я могусоздать Excel, но я не могу добавить данные к нему
У меня есть основной класс, в котором я проверяю, существует ли файл, генерировать файл и добавляет ли он к нему данные
Но когдая пытаюсь добавить данные, это выдает следующую ошибку
Generationjava.io.IOException: Невозможно прочитать весь заголовок;Прочитано 0 байт;ожидается 512 байт
Может кто-нибудь, пожалуйста, помогите !!!
Заранее спасибо
public void generateExcelFile() throws ClassNotFoundException, SQLException, IOException {
try( Connection connect = DriverManager.getConnection(
"jdbc:mysql://localhost:3306/test" ,
"root" ,""
);
Statement statement = connect.createStatement();
ResultSet resultSet = statement.executeQuery("select * from table );
FileOutputStream out = new FileOutputStream(new File("sample.xls"));
)
{
Class.forName("com.mysql.jdbc.Driver");
XSSFWorkbook workbook = new XSSFWorkbook();
XSSFSheet spreadsheet = workbook.createSheet("sample");
XSSFRow row = spreadsheet.createRow(0);
XSSFCell cell;
cell = row.createCell(0);
cell.setCellValue("ID");
cell = row.createCell(1);
cell.setCellValue("NAME");
cell = row.createCell(2);
cell.setCellValue("ADDRESS");
cell = row.createCell(3);
int i = 1;
while(resultSet.next()) {
row = spreadsheet.createRow(i);
cell = row.createCell(0);
cell.setCellValue(resultSet.getString("id"));
cell = row.createCell(1);
cell.setCellValue(resultSet.getString("name"));
cell = row.createCell(2);
cell.setCellValue(resultSet.getString("address"));
i++;
}
workbook.write(out);
logger.info("Excel file generated!!");
}
catch(Exception e){
System.out.println("Exception in Excel Generation");
}
}
public void appendFile() {
try( Connection connect = DriverManager.getConnection(
"jdbc:mysql://localhost:3306/test" ,
"root" ,""
);
Statement statement = connect.createStatement();
ResultSet resultSet = statement.executeQuery("select * from table where date=some date after excel generation);//for eg
FileOutputStream out = new FileOutputStream("sample.xls");
)
{
Class.forName("com.mysql.jdbc.Driver");
FileInputStream input = new FileInputStream("sample.xls");
HSSFWorkbook workbook1 = new HSSFWorkbook(input);
HSSFSheet sheet = workbook1.getSheetAt(0);
int lastrow= sheet.getLastRowNum();
System.out.println("*********lastrow************"+lastrow);
Row row = sheet.createRow(lastrow);
Cell cell;
int i = lastrow;
while(resultSet.next()) {
row = spreadsheet.createRow(i);
cell = row.createCell(lastrow);
cell.setCellValue(resultSet.getString("id"));
cell = row.createCell(lastrow+1);
cell.setCellValue(resultSet.getString("name"));
cell = row.createCell(lastrow+2);
cell.setCellValue(resultSet.getString("address"));
i++;
}
workbook1.write(out);
logger.info("Excel file generated!!");
}
catch(Exception e){
System.out.println("Exception in Excel Generation"+e);
}