private List<List<String>> tableOverallList;
我在此列表中有一系列列表。它在每个列表中包含8个值。我需要将它放在创建的表中。我想有2列8列。对于第一排我有这个清单。
String[] tableTitleList = {" Title", " (Re)set", " Obs", " Mean", " Std.Dev", " Min", " Max", " Unit"};
List<String> tabTitleList = Arrays.asList(tableTitleList);
帮助我将第一个值列表放在第二行的列表tableOverallList
中。我将尝试管理列表的其余部分。
PdfPTable table = new PdfPTable(3); // 3 columns.
PdfPCell cell1 = new PdfPCell(new Paragraph("Cell 1"));
PdfPCell cell2 = new PdfPCell(new Paragraph("Cell 2"));
PdfPCell cell3 = new PdfPCell(new Paragraph("Cell 3"));
PdfPCell cell3 = new PdfPCell(new Paragraph("Cell 4"));
PdfPCell cell3 = new PdfPCell(new Paragraph("Cell 5"));
PdfPCell cell3 = new PdfPCell(new Paragraph("Cell 6"));
PdfPCell cell3 = new PdfPCell(new Paragraph("Cell 7"));
PdfPCell cell3 = new PdfPCell(new Paragraph("Cell 8"));
table.addCell(cell1);
table.addCell(cell2);
table.addCell(cell3);
table.addCell(cell4);
table.addCell(cell5);
table.addCell(cell6);
table.addCell(cell7);
table.addCell(cell8);
document.add(table);
答案 0 :(得分:0)
这真的很容易。所以你有一个嵌套列表中的数据。例如:
public List<List<String>> getData() {
List<List<String>> data = new ArrayList<List<String>>();
String[] tableTitleList = {" Title", " (Re)set", " Obs", " Mean", " Std.Dev", " Min", " Max", "Unit"};
data.add(Arrays.asList(tableTitleList));
for (int i = 0; i < 10; ) {
List<String> dataLine = new ArrayList<String>();
i++;
for (int j = 0; j < tableTitleList.length; j++) {
dataLine.add(tableTitleList[j] + " " + i);
}
data.add(dataLine);
}
return data;
}
这将返回一组数据,其中第一个记录是标题行,后面的10行包含模拟数据。假设这是您拥有的数据。
现在,当您想要在表格中呈现此数据时,请执行以下操作:
PdfPTable table = new PdfPTable(8);
table.setWidthPercentage(100);
List<List<String>> dataset = getData();
for (List<String> record : dataset) {
for (String field : record) {
table.addCell(field);
}
}
document.add(table);
结果如下:
您可以在此处找到完整的源代码:ArrayToTable这是生成的PDF:array_to_table.pdf
如果您只想要2行,标题行和数据行,请更改以下行:
for (int i = 0; i < 10; ) {
进入这个:
for (int i = 0; i < 2; ) {
我提供了更通用的解决方案,因为拥有通用代码会更优雅。