Commit e7772f9a by 宋祥

Merge branch 'dev-sx' of http://git.pseer.com/platform/hp-smart into dev

parents 74e902c4 6ac8ee7e
...@@ -101,24 +101,26 @@ public class CKExcelTools { ...@@ -101,24 +101,26 @@ public class CKExcelTools {
sheet.setColumnWidth(1, 30 * 256); sheet.setColumnWidth(1, 30 * 256);
sheet.setColumnWidth(5, 15 * 256); sheet.setColumnWidth(5, 15 * 256);
sheet.setColumnWidth(6, 15 * 256); sheet.setColumnWidth(6, 15 * 256);
// startRow:索引,从0开始
int startRow = 0;
// 第1行 // 第1行
buildRow1(workbook, sheet, dataMap); startRow = buildRow1(workbook, sheet, startRow, dataMap);
// 第2行:标题栏 // 第2行:标题栏
buildRow2(workbook, sheet); startRow = buildRow2(workbook, sheet, startRow);
// 第2行:标题栏
startRow = buildRow3(workbook, sheet, startRow);
// 遍历数据行,excel行从第3行开始 // 遍历数据行,excel行从第3行开始
int headRow = 2;
int lastRow = 2;
Map<String, List<HPKC004>> childrenMap = (Map<String, List<HPKC004>>) dataMap.get(Field.CHILDREN); Map<String, List<HPKC004>> childrenMap = (Map<String, List<HPKC004>>) dataMap.get(Field.CHILDREN);
for (Map.Entry<String, List<HPKC004>> childrenEntry : childrenMap.entrySet()) { for (Map.Entry<String, List<HPKC004>> childrenEntry : childrenMap.entrySet()) {
String key = childrenEntry.getKey(); String key = childrenEntry.getKey();
List<HPKC004> values = childrenEntry.getValue(); List<HPKC004> values = childrenEntry.getValue();
// 组名称 // 组名称
lastRow = buildGroupRow(workbook, sheet, key, lastRow, headRow); startRow = buildGroupRow(workbook, sheet, key, startRow);
// 明细数据,返回末尾行数 // 明细数据,返回末尾行数
lastRow = buildChildRow(workbook, sheet, values, lastRow, headRow); startRow = buildChildRow(workbook, sheet, values, startRow);
} }
// 页脚 // 页脚
buildFoot(workbook, sheet, lastRow); buildFoot(workbook, sheet, startRow);
return workbook; return workbook;
} }
...@@ -127,12 +129,11 @@ public class CKExcelTools { ...@@ -127,12 +129,11 @@ public class CKExcelTools {
* *
* @param workbook * @param workbook
* @param sheet * @param sheet
* @param lastRow * @param startRow
*/ */
private static void buildFoot(HSSFWorkbook workbook, HSSFSheet sheet, int lastRow) { private static void buildFoot(HSSFWorkbook workbook, HSSFSheet sheet, int startRow) {
// 页脚第一行 // 页脚第一行
int currRow = lastRow + 1; HSSFRow row1 = sheet.createRow(startRow);
HSSFRow row1 = sheet.createRow(currRow);
row1.setHeight((short) (20 * 20)); row1.setHeight((short) (20 * 20));
// 1.1 // 1.1
HSSFCell cell1_1 = row1.createCell(0); HSSFCell cell1_1 = row1.createCell(0);
...@@ -143,11 +144,11 @@ public class CKExcelTools { ...@@ -143,11 +144,11 @@ public class CKExcelTools {
cell1_2.setCellValue("承运车号:"); cell1_2.setCellValue("承运车号:");
cell1_2.setCellStyle(getCellStyle(workbook, HorizontalAlignment.LEFT, VerticalAlignment.CENTER, true, false)); cell1_2.setCellStyle(getCellStyle(workbook, HorizontalAlignment.LEFT, VerticalAlignment.CENTER, true, false));
// 合并单元格 // 合并单元格
sheet.addMergedRegion(new CellRangeAddress(currRow, currRow, 0, 1)); sheet.addMergedRegion(new CellRangeAddress(startRow, startRow, 0, 1));
sheet.addMergedRegion(new CellRangeAddress(currRow, currRow, 2, 4)); sheet.addMergedRegion(new CellRangeAddress(startRow, startRow, 2, 4));
// 页脚第二行 // 页脚第二行
currRow = currRow + 1; startRow = startRow + 1;
HSSFRow row2 = sheet.createRow(currRow); HSSFRow row2 = sheet.createRow(startRow);
row2.setHeight((short) (20 * 20)); row2.setHeight((short) (20 * 20));
// 1.1 // 1.1
HSSFCell cell2_1 = row2.createCell(0); HSSFCell cell2_1 = row2.createCell(0);
...@@ -158,8 +159,8 @@ public class CKExcelTools { ...@@ -158,8 +159,8 @@ public class CKExcelTools {
cell2_2.setCellValue("发货人签字:"); cell2_2.setCellValue("发货人签字:");
cell2_2.setCellStyle(getCellStyle(workbook, HorizontalAlignment.LEFT, VerticalAlignment.CENTER, true, false)); cell2_2.setCellStyle(getCellStyle(workbook, HorizontalAlignment.LEFT, VerticalAlignment.CENTER, true, false));
// 合并单元格 // 合并单元格
sheet.addMergedRegion(new CellRangeAddress(currRow, currRow, 0, 1)); sheet.addMergedRegion(new CellRangeAddress(startRow, startRow, 0, 1));
sheet.addMergedRegion(new CellRangeAddress(currRow, currRow, 2, 4)); sheet.addMergedRegion(new CellRangeAddress(startRow, startRow, 2, 4));
} }
/** /**
...@@ -168,20 +169,16 @@ public class CKExcelTools { ...@@ -168,20 +169,16 @@ public class CKExcelTools {
* @param workbook * @param workbook
* @param sheet * @param sheet
* @param values * @param values
* @param lastRow * @param startRow
* @param headRow
*/ */
private static int buildChildRow(HSSFWorkbook workbook, HSSFSheet sheet, List<HPKC004> values, private static int buildChildRow(HSSFWorkbook workbook, HSSFSheet sheet, List<HPKC004> values, int startRow) {
int lastRow, int headRow) {
int currRow = lastRow + 1;
for (int i = 0; i < values.size(); i++) { for (int i = 0; i < values.size(); i++) {
HPKC004 valueMap = values.get(i); HPKC004 valueMap = values.get(i);
currRow = currRow + i; HSSFRow row = sheet.createRow(startRow);
HSSFRow row = sheet.createRow(currRow);
row.setHeight((short) (20 * 20)); row.setHeight((short) (20 * 20));
// 序号 // 序号
HSSFCell cell1_0 = row.createCell(0); HSSFCell cell1_0 = row.createCell(0);
cell1_0.setCellValue(currRow - headRow); cell1_0.setCellValue(startRow - 2);
cell1_0.setCellStyle(getCellStyle(workbook)); cell1_0.setCellStyle(getCellStyle(workbook));
// 名称 // 名称
HSSFCell cell1_1 = row.createCell(1); HSSFCell cell1_1 = row.createCell(1);
...@@ -211,8 +208,9 @@ public class CKExcelTools { ...@@ -211,8 +208,9 @@ public class CKExcelTools {
HSSFCell cell1_6 = row.createCell(6); HSSFCell cell1_6 = row.createCell(6);
cell1_6.setCellValue(valueMap.getRemark()); cell1_6.setCellValue(valueMap.getRemark());
cell1_6.setCellStyle(getCellStyle(workbook)); cell1_6.setCellStyle(getCellStyle(workbook));
++startRow;
} }
return currRow; return startRow;
} }
/** /**
...@@ -220,17 +218,14 @@ public class CKExcelTools { ...@@ -220,17 +218,14 @@ public class CKExcelTools {
* *
* @param workbook * @param workbook
* @param sheet * @param sheet
* @param lastRow * @param startRow
* @param headRow
*/ */
private static int buildGroupRow(HSSFWorkbook workbook, HSSFSheet sheet, String groupName, private static int buildGroupRow(HSSFWorkbook workbook, HSSFSheet sheet, String groupName, int startRow) {
int lastRow, int headRow) { HSSFRow row = sheet.createRow(startRow);
int currRow = lastRow + 1;
HSSFRow row = sheet.createRow(currRow);
row.setHeight((short) (20 * 20)); row.setHeight((short) (20 * 20));
// 序号 // 序号
HSSFCell cell1_0 = row.createCell(0); HSSFCell cell1_0 = row.createCell(0);
cell1_0.setCellValue(currRow - headRow); cell1_0.setCellValue(startRow - 2);
cell1_0.setCellStyle(getCellStyle(workbook)); cell1_0.setCellStyle(getCellStyle(workbook));
// 名称 // 名称
HSSFCell cell1_1 = row.createCell(1); HSSFCell cell1_1 = row.createCell(1);
...@@ -248,8 +243,8 @@ public class CKExcelTools { ...@@ -248,8 +243,8 @@ public class CKExcelTools {
HSSFCell cell1_6 = row.createCell(6); HSSFCell cell1_6 = row.createCell(6);
cell1_6.setCellStyle(getCellStyle(workbook)); cell1_6.setCellStyle(getCellStyle(workbook));
// 合并单元格 // 合并单元格
sheet.addMergedRegion(new CellRangeAddress(currRow, currRow, 1, 6)); sheet.addMergedRegion(new CellRangeAddress(startRow, startRow, 1, 6));
return currRow; return startRow + 1;
} }
/** /**
...@@ -257,11 +252,12 @@ public class CKExcelTools { ...@@ -257,11 +252,12 @@ public class CKExcelTools {
* *
* @param workbook * @param workbook
* @param sheet * @param sheet
* @param startRow
* @param dataMap * @param dataMap
*/ */
private static void buildRow1(HSSFWorkbook workbook, HSSFSheet sheet, Map dataMap) { private static int buildRow1(HSSFWorkbook workbook, HSSFSheet sheet, int startRow, Map dataMap) {
// 在sheet中添加第0行,注意老版本poi对Excel的行数列数有限制short // 在sheet中添加第0行,注意老版本poi对Excel的行数列数有限制short
HSSFRow row1 = sheet.createRow(0); HSSFRow row1 = sheet.createRow(startRow);
row1.setHeight((short) (20 * 20)); row1.setHeight((short) (20 * 20));
// 1.1、表头:项目名 // 1.1、表头:项目名
HSSFCell cell1_1 = row1.createCell(0); HSSFCell cell1_1 = row1.createCell(0);
...@@ -274,6 +270,7 @@ public class CKExcelTools { ...@@ -274,6 +270,7 @@ public class CKExcelTools {
// 合并单元格 // 合并单元格
sheet.addMergedRegion(new CellRangeAddress(0, 0, 0, 4)); sheet.addMergedRegion(new CellRangeAddress(0, 0, 0, 4));
sheet.addMergedRegion(new CellRangeAddress(0, 0, 5, 6)); sheet.addMergedRegion(new CellRangeAddress(0, 0, 5, 6));
return startRow + 1;
} }
/** /**
...@@ -281,10 +278,11 @@ public class CKExcelTools { ...@@ -281,10 +278,11 @@ public class CKExcelTools {
* *
* @param workbook * @param workbook
* @param sheet * @param sheet
* @param startRow
*/ */
private static void buildRow2(HSSFWorkbook workbook, HSSFSheet sheet) { private static int buildRow2(HSSFWorkbook workbook, HSSFSheet sheet, int startRow) {
// 2.第2行标题行 // 2.第2行标题行
HSSFRow row2 = sheet.createRow(1); HSSFRow row2 = sheet.createRow(startRow);
row2.setHeight((short) (20 * 20)); row2.setHeight((short) (20 * 20));
// 2.0、序号 // 2.0、序号
HSSFCell cell2_0 = row2.createCell(0); HSSFCell cell2_0 = row2.createCell(0);
...@@ -316,6 +314,17 @@ public class CKExcelTools { ...@@ -316,6 +314,17 @@ public class CKExcelTools {
cell2_6.setCellValue("备注"); cell2_6.setCellValue("备注");
cell2_6.setCellStyle(getCellStyle(workbook, HorizontalAlignment.CENTER, VerticalAlignment.CENTER, true, cell2_6.setCellStyle(getCellStyle(workbook, HorizontalAlignment.CENTER, VerticalAlignment.CENTER, true,
true)); true));
return startRow + 1;
}
/**
* 构建第2~3行
*
* @param workbook
* @param sheet
* @param startRow
*/
private static int buildRow3(HSSFWorkbook workbook, HSSFSheet sheet, int startRow) {
// 3.第3行标题行 // 3.第3行标题行
HSSFRow row3 = sheet.createRow(2); HSSFRow row3 = sheet.createRow(2);
row3.setHeight((short) (20 * 20)); row3.setHeight((short) (20 * 20));
...@@ -350,8 +359,10 @@ public class CKExcelTools { ...@@ -350,8 +359,10 @@ public class CKExcelTools {
sheet.addMergedRegion(new CellRangeAddress(1, 1, 2, 4)); sheet.addMergedRegion(new CellRangeAddress(1, 1, 2, 4));
sheet.addMergedRegion(new CellRangeAddress(1, 2, 5, 5)); sheet.addMergedRegion(new CellRangeAddress(1, 2, 5, 5));
sheet.addMergedRegion(new CellRangeAddress(1, 2, 6, 6)); sheet.addMergedRegion(new CellRangeAddress(1, 2, 6, 6));
return startRow + 1;
} }
/** /**
* 默认:居中+边框 * 默认:居中+边框
* *
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment