ここに Emp.xls テーブルがあります:-
+-------+-------------+---------------+--------+
| EmpId | Name | Designation | Salary|
+-------+-------------+---------------+--------+
| 1.0 | Akon Roy | project led | 12000.0|
| 2.0 | Brey Deo | manager | 13000.0|
| 3.0 | Dean | delivery head | 14000.0|
| 4.0 | Clark | team led |155555.0|
+-------+-------------+---------------+--------+
私の問題は、出力が次のようなPDFファイルを作成したいということです:-
Hello <name>,
ここでnameは、ユーザーが指定した Emp.xls レコードの任意の名前にすることができます。iTextとApache poiを使用してこの問題を解決する方法。
私のコードは次のとおりです。
public static void main(String[] args) {
try {
FileInputStream inputFile = new FileInputStream("E:\\Emp.xls");
HSSFWorkbook workbook = new HSSFWorkbook(inputFile);
HSSFSheet sheet = workbook.getSheetAt(0);
//adding row iterator
Iterator<Row> rowitr = sheet.iterator();
OutputStream file = new FileOutputStream(new File("E:\\Test.pdf"));
Document document = new Document();
PdfWriter.getInstance(document, file);
document.open();
document.add(new Paragraph("Hello World, iText"));
//document.add(new Paragraph("Dear "));
while(rowitr.hasNext()){
Row row = rowitr.next();
//adding cell iterator
Iterator<Cell> cellitr = row.iterator();
while(cellitr.hasNext()){
Cell cell = cellitr.next();
switch(cell.getCellType()){
case Cell.CELL_TYPE_STRING:
if(cell.getStringCellValue == "Dean")
document.add(new Chunk("Dear " cell.getStringCellValue()+ ","));
}
}
}
document.close();
file.close();
} catch (Exception e) {
e.printStackTrace();
}
}
iText でそれが不可能な場合は、他のオープン ソース API を提案してください。