package com.pio.sheet; import java.io.FileOutputStream; import java.io.OutputStream; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; import org.apache.poi.hssf.usermodel.HSSFCell; import org.apache.poi.hssf.usermodel.HSSFCellStyle; import org.apache.poi.hssf.usermodel.HSSFFont; import org.apache.poi.hssf.usermodel.HSSFRichTextString; import org.apache.poi.hssf.usermodel.HSSFRow; import org.apache.poi.hssf.usermodel.HSSFSheet; import org.apache.poi.hssf.usermodel.HSSFWorkbook; import org.apache.poi.hssf.util.HSSFColor; import com.pio.sheet.WlLocationAllocPojo; public class CopyOfPoiTest { @SuppressWarnings("unchecked") public static void main(String[] args) { try { OutputStream out = new FileOutputStream("D:\\test.xls"); List<List<String>> data = new ArrayList<List<String>>(); for (int i = 1; i < 15; i++) { List rowData = new ArrayList(); rowData.add(String.valueOf(i)); rowData.add("东霖柏鸿"+i); data.add(rowData); } List<WlLocationAllocPojo> t_list =new ArrayList<WlLocationAllocPojo>(); for (int i = 0; i < 2800; i++) { WlLocationAllocPojo wlLocationAllocPojo=new WlLocationAllocPojo(); wlLocationAllocPojo.setAvailStatus(i+":"+i); wlLocationAllocPojo.setApMac("2"); wlLocationAllocPojo.setApName("3"); wlLocationAllocPojo.setApId("4"); wlLocationAllocPojo.setInstName("5"); wlLocationAllocPojo.setAcId("6"); wlLocationAllocPojo.setLocationName("7"); wlLocationAllocPojo.setInsertTime("8"); t_list.add(wlLocationAllocPojo); } Map<String, String> wlLocationAllocPojoMap=new HashMap<String, String>(); wlLocationAllocPojoMap.put("00", "wlLocationAllocPojo.getAvailStatus()"); wlLocationAllocPojoMap.put("11", "wlLocationAllocPojo.getApMac()"); wlLocationAllocPojoMap.put("22", "wlLocationAllocPojo.getApName()"); wlLocationAllocPojoMap.put("33", "wlLocationAllocPojo.getApId()"); wlLocationAllocPojoMap.put("44", "wlLocationAllocPojo.getInstName()"); wlLocationAllocPojoMap.put("55", "wlLocationAllocPojo.getAcId()"); wlLocationAllocPojoMap.put("66", "wlLocationAllocPojo.getLocationName()"); wlLocationAllocPojoMap.put("77", "wlLocationAllocPojo.getInsertTime()"); System.out.println(t_list.size()); int readIndex=0; int pageSize=1000; String[] headers = { "数量", "可用状态", "AP MAC" , "AP名称", "APID", "AC 名称", "AC ID", "位置名称" , "入库时间"}; HSSFWorkbook workbook = new HSSFWorkbook(); int page =(int) Math.ceil((float)t_list.size()/pageSize); for (int i = 0; i < page; i++) { // 生成一个表格 HSSFSheet sheet = workbook.createSheet(); int pageCount=i+1; workbook.setSheetName(i, "AP分配位置SHEET"+pageCount); // 设置表格默认列宽度为20个字节 sheet.setDefaultColumnWidth(20); // 生成一个样式 HSSFCellStyle style = workbook.createCellStyle(); // 设置这些样式 style.setFillForegroundColor(HSSFColor.PALE_BLUE.index); style.setFillPattern(HSSFCellStyle.SOLID_FOREGROUND); style.setBorderBottom(HSSFCellStyle.BORDER_THIN); style.setBorderLeft(HSSFCellStyle.BORDER_THIN); style.setBorderRight(HSSFCellStyle.BORDER_THIN); style.setBorderTop(HSSFCellStyle.BORDER_THIN); style.setAlignment(HSSFCellStyle.ALIGN_CENTER); // 生成一个字体 HSSFFont font = workbook.createFont(); font.setColor(HSSFColor.BLACK.index); font.setFontHeightInPoints((short) 12); font.setBoldweight(HSSFFont.BOLDWEIGHT_BOLD); // 把字体应用到当前的样式 style.setFont(font); // 指定当单元格内容显示不下时自动换行 style.setWrapText(true); // 产生表格标题行 HSSFRow row = sheet.createRow(0); for (int j = 0; j < headers.length; j++) { HSSFCell cell = row.createCell( j); cell.setCellStyle(style); HSSFRichTextString text = new HSSFRichTextString(headers[j]); cell.setCellValue(text.toString()); } // 遍历集合数据,产生数据行 if (t_list != null) { for ( int n =i*pageSize; n<( i+1)*pageSize; n++) { row = sheet.createRow((1+readIndex++)-i*pageSize); if (readIndex>t_list.size()) { break; } //int cellIndex = 0; for (int w = 0; w < 9; w++) { WlLocationAllocPojo wlLocationAllocPojo=t_list.get(readIndex-1); HSSFCell cell = row.createCell(w); if (w ==0) cell.setCellValue(readIndex) ; if (w ==1) cell.setCellValue(wlLocationAllocPojo.getAvailStatus()) ; if (w ==2) cell.setCellValue(wlLocationAllocPojo.getApMac()); if (w ==3) cell.setCellValue(wlLocationAllocPojo.getApName()); if (w ==4) cell.setCellValue(wlLocationAllocPojo.getApId()); if (w ==5) cell.setCellValue(wlLocationAllocPojo.getInstName()); if (w ==6) cell.setCellValue(wlLocationAllocPojo.getAcId()); if (w ==7) cell.setCellValue(wlLocationAllocPojo.getLocationName()); if (w ==8) cell.setCellValue(wlLocationAllocPojo.getInsertTime()); } // cellIndex++; /* for (WlLocationAllocPojo wlLocationAllocPojo t_list.get(readIndex-1)) { HSSFCell cell = row.createCell(cellIndex); //cell.setCellValue(str.toString()); cellIndex++; }*/ // for (WlLocationAllocPojo wlLocationAllocPojo : t_list) { // for (int w = 1; w < 9; w++) { // HSSFCell cell = row.createCell(w-1); // cell.setCellValue(wlLocationAllocPojoMap.get(w)); // } // } } /* if (readIndex%4==0) { continue; }*/ } } workbook.write(out); out.close(); } catch (Exception e) { e.printStackTrace(); } } }
package com.pio.sheet;
/**
* <br>
*
* <p>
* <p>
* </p>
* <br>
* <p>
*<br>
* <strong>Modify History:</strong><br>
* user modify_date modify_content<br>
* -------------------------------------------<br>
* <br>
*/
public class WlLocationAllocPojo {
/**
* <code>serialVersionUID</code> - {description}.
*/
private static final long serialVersionUID = 1703077541035066178L;
/**
* <code>m_mac</code> - {description} .
*/
private String m_mac;
/**
* <code>m_locationName</code> - {description} .
*/
private String m_locationName;
/**
* <code>m_locationId</code> - {description} .
*/
private String m_locationId;
/**
* <code>m_apId</code> - {description} .
*/
private String m_apId;
/**
* <code>m_apMac</code> - {description} .
*/
private String m_apMac;
/**
* <code>m_availStatus</code> -
*/
private String m_availStatus;
/**
* <code>m_acId</code> -
*/
private String m_acId;
/**
* <code>m_apName</code> -
*/
private String m_apName;
/**
* <code>m_instName</code> -
*/
private String m_instName;
/**
* <code>m_insertTime</code> -
*/
private String m_insertTime;
/**
* @return m_mac
*/
public String getMac() {
return m_mac;
}
/**
* @param mac mac
*/
public void setMac(final String mac) {
this.m_mac = mac;
}
/**
* @return m_locationName
*/
public String getLocationName() {
return m_locationName;
}
/**
* @param locationName locationName
*/
public void setLocationName(final String locationName) {
this.m_locationName = locationName;
}
/**
* @return m_locationId
*/
public String getLocationId() {
return m_locationId;
}
/**
* @param locationId locationId
*/
public void setLocationId(final String locationId) {
this.m_locationId = locationId;
}
/**
* @return m_apId
*/
public String getApId() {
return m_apId;
}
/**
* @param apId apId
*/
public void setApId(final String apId) {
this.m_apId = apId;
}
/**
* @return m_apMac
*/
public String getApMac() {
return m_apMac;
}
/**
* @param apMac apMac
*/
public void setApMac(final String apMac) {
this.m_apMac = apMac;
}
/**
* {method description}.
* @return m_availStatus
*/
public String getAvailStatus() {
return m_availStatus;
}
/**
* {method description}.
* @param availStatus availStatus
*/
public void setAvailStatus(final String availStatus) {
this.m_availStatus = availStatus;
}
/**
* {method description}.
* @return m_acId
*/
public String getAcId() {
return m_acId;
}
/**
* {method description}.
* @param acId acId
*/
public void setAcId(final String acId) {
this.m_acId = acId;
}
/**
* {method description}.
* @return m_apName
*/
public String getApName() {
return m_apName;
}
/**
* {method description}.
* @param apName apName
*/
public void setApName(final String apName) {
this.m_apName = apName;
}
/**
* {method description}.
* @return m_instName
*/
public String getInstName() {
return m_instName;
}
/**
* {method description}.
* @param instName instName
*/
public void setInstName(final String instName) {
this.m_instName = instName;
}
/**
* {method description}.
* @return m_insertTime
*/
public String getInsertTime() {
return m_insertTime;
}
/**
* {method description}.
* @param insertTime insertTime
*/
public void setInsertTime(final String insertTime) {
m_insertTime = insertTime;
}
}