用poi生成EXCEL

package hz;

import java.io.FileOutputStream;
import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;

import org.apache.poi.hssf.usermodel.HSSFCell;
import org.apache.poi.hssf.usermodel.HSSFCellStyle;
import org.apache.poi.hssf.usermodel.HSSFDataFormat;
import org.apache.poi.hssf.usermodel.HSSFFont;
import org.apache.poi.hssf.usermodel.HSSFRow;
import org.apache.poi.hssf.usermodel.HSSFSheet;
import org.apache.poi.hssf.usermodel.HSSFWorkbook;

public class Make{

public static void main(String []args){
String path="f:/info.xls";
Make mk = new Make();
mk.abc(path);
}

public void abc(String path){
HSSFWorkbook wb = new HSSFWorkbook(); // 建立新HSSFWorkbook对象

HSSFSheet sheet = wb.createSheet();
// wb.setSheetName(0, "", HSSFWorkbook.ENCODING_UTF_16);
sheet.setDefaultColumnWidth((short) 15);
//HashMap hm = new HashMap();
//String cj02005 = (String)hm.get("CJ02005");
//System.out.println(cj02005);
// 样式2 宋体 写正文时用
HSSFFont font2 = wb.createFont();
font2.setColor(HSSFFont.COLOR_NORMAL);
font2.setFontName("宋体");
font2.setFontHeightInPoints((short) 12);
HSSFCellStyle normal = wb.createCellStyle();
normal.setFont(font2);
normal.setAlignment(HSSFCellStyle.ALIGN_LEFT); // 水平居中
normal.setVerticalAlignment(HSSFCellStyle.VERTICAL_TOP); // 垂直居中
normal.setDataFormat(HSSFDataFormat.getBuiltinFormat("@"));
HSSFRow row = null;
HSSFCell cell = null;
HSSFCell csCell = null;

// 行
int i = 0;

row = sheet.createRow((short) i);
cell = row.createCell((short) (0)); // 建立新cell
cell.setCellStyle(normal);
cell.setEncoding(HSSFCell.ENCODING_UTF_16); // 设置cell编码解决中文高位字节截断
cell.setCellValue("姓名"); // 设置中西文结合字符串

row = sheet.createRow((short) i);
cell = row.createCell((short) (1)); // 建立新cell
cell.setCellStyle(normal);
cell.setEncoding(HSSFCell.ENCODING_UTF_16); // 设置cell编码解决中文高位字节截断
cell.setCellValue("性别"); // 设置中西文结合字符串

row = sheet.createRow((short) i);
cell = row.createCell((short) (2)); // 建立新cell
cell.setCellStyle(normal);
cell.setEncoding(HSSFCell.ENCODING_UTF_16); // 设置cell编码解决中文高位字节截断
cell.setCellValue("民族"); // 设置中西文结合字符串

row = sheet.createRow((short) i);
cell = row.createCell((short) (3)); // 建立新cell
cell.setCellStyle(normal);
cell.setEncoding(HSSFCell.ENCODING_UTF_16); // 设置cell编码解决中文高位字节截断
cell.setCellValue("卡号"); // 设置中西文结合字符串

row = sheet.createRow((short) i);
cell = row.createCell((short) (4)); // 建立新cell
cell.setCellStyle(normal);
cell.setEncoding(HSSFCell.ENCODING_UTF_16); // 设置cell编码解决中文高位字节截断
cell.setCellValue("身份证号"); // 设置中西文结合字符串

row = sheet.createRow((short) i);
cell = row.createCell((short) (5)); // 建立新cell
cell.setCellStyle(normal);
cell.setEncoding(HSSFCell.ENCODING_UTF_16); // 设置cell编码解决中文高位字节截断
cell.setCellValue("银行行号"); // 设置中西文结合字符串

row = sheet.createRow((short) i);
cell = row.createCell((short) (6)); // 建立新cell
cell.setCellStyle(normal);
cell.setEncoding(HSSFCell.ENCODING_UTF_16); // 设置cell编码解决中文高位字节截断
cell.setCellValue("银行卡号"); // 设置中西文结合字符串

String sql = "SELECT CJ02005,CJ02006,CJ02007,CJ02029,CJ02004,CJ02027,CJ02028 FROM T_CJ02";
ResultSet rs = this.sel(sql);
try {
while(rs.next()){
row = sheet.createRow((short) i + 1);
cell = row.createCell((short) (0)); // 建立新cell
cell.setCellStyle(normal);
cell.setEncoding(HSSFCell.ENCODING_UTF_16); // 设置cell编码解决中文高位字节截断
cell.setCellValue(rs.getString("CJ02005")); // 设置中西文结合字符串
System.out.println(rs.getString("CJ02005"));

cell = row.createCell((short) (1)); // 建立新cell
cell.setCellStyle(normal);
cell.setEncoding(HSSFCell.ENCODING_UTF_16); // 设置cell编码解决中文高位字节截断
cell.setCellValue(rs.getString("CJ02006")); // 设置中西文结合字符串

cell = row.createCell((short) (2)); // 建立新cell
cell.setCellStyle(normal);
cell.setEncoding(HSSFCell.ENCODING_UTF_16); // 设置cell编码解决中文高位字节截断
cell.setCellValue(rs.getString("CJ02007")); // 设置中西文结合字符串

cell = row.createCell((short) (3)); // 建立新cell
cell.setCellStyle(normal);
cell.setEncoding(HSSFCell.ENCODING_UTF_16); // 设置cell编码解决中文高位字节截断
cell.setCellValue(rs.getString("CJ02029")); // 设置中西文结合字符串

cell = row.createCell((short) (4)); // 建立新cell
cell.setCellStyle(normal);
cell.setEncoding(HSSFCell.ENCODING_UTF_16); // 设置cell编码解决中文高位字节截断
cell.setCellValue(rs.getString("CJ02004")); // 设置中西文结合字符串

cell = row.createCell((short) (5)); // 建立新cell
cell.setCellStyle(normal);
cell.setEncoding(HSSFCell.ENCODING_UTF_16); // 设置cell编码解决中文高位字节截断
cell.setCellValue(rs.getString("CJ02027")); // 设置中西文结合字符串

cell = row.createCell((short) (6)); // 建立新cell
cell.setCellStyle(normal);
cell.setEncoding(HSSFCell.ENCODING_UTF_16); // 设置cell编码解决中文高位字节截断
cell.setCellValue(rs.getString("CJ02028")); // 设置中西文结合字符串

i++;
}
} catch (SQLException e) {
e.printStackTrace();
}
try {
FileOutputStream fileOut = new FileOutputStream(path);
wb.write(fileOut);
fileOut.close();
System.out.println("====动态模板文件excel文件生成成功:========" + path);
} catch (Exception e1) {
e1.printStackTrace();
}
}
public ResultSet sel(String sql){
Connection con = null;
ResultSet rs = null;
//String sql = "SELECT CJ02005,CJ02006,CJ02007,CJ02029,CJ02004,CJ02027,CJ02028 FROM T_CJ02";
try{
con = DataConnection.getConnection();
Statement stt = con.createStatement();
rs = stt.executeQuery(sql);

}catch(Exception e){
e.printStackTrace();
}
return rs;
}
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值