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;
}
}