import org.apache.poi.hssf.usermodel.HSSFCell;
import org.apache.poi.hssf.usermodel.HSSFCellStyle;
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.poifs.filesystem.POIFSFileSystem;
/**
* @param inputFile 输入模板文件途径
* @param outputFile 输入文件存放于服务器途径
* @param dataList 待导出数据
* @throws Exception
* @roseuid:
*/
public void exportExcelFile(String inputFile, String outputFile, List dataList) throws Exception
{
//用模板文件结构poi
POIFSFileSystem fs = new POIFSFileSystem(new FileInputStream(inputFile));
//创立模板作业表
HSSFWorkbook templatewb = new HSSFWorkbook(fs);
//直接取模板榜首个sheet目标
HSSFSheet templateSheet = templatewb.getSheetAt(1);
//得到模板的榜首个sheet的榜首行目标 为了得到模板款式
HSSFRow templateRow = templateSheet.getRow(0);
//HSSFSheet timplateSheet = templatewb.getSheetAt(1);
//获得Excel文件的总列数
int columns = templateSheet.getRow((short) 0).getPhysicalNumberOfCells();
Debug.println("columns is : " columns);
//创立款式数组
HSSFCellStyle styleArray[] = new HSSFCellStyle[columns];
//一次性创立一切列的款式放在数组里
for (int s = 0; s < columns; s )
{
//得到数组实例
styleArray[s] = templatewb.createCellStyle();
}
//循环对每一个单元格进行赋值
//定位行
for (int rowId = 1; rowId < dataList.size(); rowId )
{
//顺次取第rowId行数据 每一个数据是valueList
List valueList = (List) dataList.get(rowId - 1);
//定位列
for (int columnId = 0; columnId < columns; columnId )
{
//顺次取出对应与colunmId列的值
//每一个单元格的值
String dataValue = (String) valueList.get(columnId);
//取出colunmId列的的style
//模板每一列的款式
HSSFCellStyle style = styleArray[columnId];
//取模板第colunmId列的单元格目标
//模板单元格目标
HSSFCell templateCell = templateRow.getCell((short) columnId);
//创立一个新的rowId行 行目标
//新建的行目标
HSSFRow hssfRow = templateSheet.createRow(rowId);
//创立新的rowId行 columnId列 单元格目标
//新建的单元格目标
HSSFCell cell = hssfRow.createCell((short) columnId);
//假如对应的模板单元格 款式为非确定
if (templateCell.getCellStyle().getLocked() == false)
{
//设置此列style为非确定
style.setLocked(false);
//设置到新的单元格上
cell.setCellStyle(style);
}
//否则款式为确定
else
{
//设置此列style为确定
style.setLocked(true);
//设置到新单元格上
cell.setCellStyle(style);
}
//设置编码
cell.setEncoding(HSSFCell.ENCODING_UTF_16);
//Debug.println("dataValue : " dataValue);
//设置值 一致为String
cell.setCellValue(dataValue);
}
}
//设置输入流
FileOutputStream fOut = new FileOutputStream(outputFile);
//将模板的内容写到输出文件上
templatewb.write(fOut);
fOut.flush();
//操作结束,关闭文件
fOut.close();
}try{Connection con; Statement stmt; ResultSet rs; int temp; Class.forName("com.mysql.jdbc.Driver"); con=DriverManager.getConnection("jdbc:mysql://localhost:3306/java","root","");//以上是数据库衔接,不同的数据管理器有 //不同的驱动和链接方式,以上是mysql的衔接stmt=con.createStatement(); rs=stmt.executeQuery("select * from student");//履行查询句子,成果赋值给成果集rs //成果集是成果于字段编号的映射,每一个字 //段都有一个编号,最小为1,也就是榜首个字段 while(rs.next()){ String names=rs.getString("name");//查询成果转换成字符串。 System.out.println(names); }rs.close();
}catch(Exception e){
e.printStackTrace();
}