版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/xcc_2269861428/article/details/88291096
package poi.test;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
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.HSSFClientAnchor;
import org.apache.poi.hssf.usermodel.HSSFPatriarch;
import org.apache.poi.hssf.usermodel.HSSFRichTextString;
import org.apache.poi.hssf.usermodel.HSSFRow;
import org.apache.poi.hssf.usermodel.HSSFShape;
import org.apache.poi.hssf.usermodel.HSSFSheet;
import org.apache.poi.hssf.usermodel.HSSFSimpleShape;
import org.apache.poi.hssf.usermodel.HSSFWorkbook;
/**
* 写入文件
* @author xuchangcheng
* 2018年11月2日
*/
public class WritePoi {
/**
* 准备数据
* @return
*/
public List<Map<String,Object>> data(){
List<Map<String,Object>> list = new ArrayList<>();
Map<String,Object> map = new HashMap<>();
map.put("name", "测试01");
map.put("age", 25);
list.add(map);
Map<String,Object> map1 = new HashMap<>();
map1.put("name", "测试02");
map1.put("age", 22);
list.add(map1);
Map<String,Object> map2 = new HashMap<>();
map2.put("name", "测试03");
map2.put("age", 23);
list.add(map2);
return list;
}
public void writeData2Excel(){
String resultPath = "E:/key/2010表格.xls";
String[] title={" 学号\n 信息","年龄"}; //表头
//创建工作簿
HSSFWorkbook workbook=new HSSFWorkbook();
HSSFCellStyle cellStyle=workbook.createCellStyle();
cellStyle.setWrapText(true);
//创建sheet
HSSFSheet sheet=workbook.createSheet("sheet");
sheet.setDefaultColumnWidth(10);
//创建第一行
HSSFRow row=sheet.createRow(0);
row.setHeightInPoints(30);
HSSFCell cell=null;
//插入第一行数据的表头
for(int i=0;i<title.length;i++){
cell=row.createCell(i);
cell.setCellStyle(cellStyle);
cell.setCellValue(new HSSFRichTextString(title[i]));
}
List<Map<String,Object>> data = data();
for(int i=1;i<=data.size();i++){
HSSFRow row2=sheet.createRow(i);
HSSFCell cell0=row2.createCell(0);
cell0.setCellValue(data.get(i-1).get("name").toString());
cell0=row2.createCell(1);
cell0.setCellValue(data.get(i-1).get("age").toString());
}
HSSFPatriarch patriarch = sheet.createDrawingPatriarch();
HSSFClientAnchor anchor = new HSSFClientAnchor();
anchor.setAnchor((short) 0, 0, 0, 0, (short) 1, 1, 0, 0);
HSSFSimpleShape line1 = patriarch.createSimpleShape(anchor);
line1.setShapeType(HSSFSimpleShape.OBJECT_TYPE_LINE);
line1.setLineStyle(HSSFShape.LINESTYLE_SOLID);
//在NPOI中线的宽度12700表示1pt
line1.setLineWidth(3350);
try {
FileOutputStream fileOutputStream = new FileOutputStream(resultPath);
workbook.write(fileOutputStream);
workbook.getCreationHelper().createFormulaEvaluator().evaluateFormulaCell(cell);
fileOutputStream.close();
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
public static void main(String[] args) {
WritePoi w = new WritePoi();
w.writeData2Excel();
System.out.println("完成");
}
}