Excel生成的例子!

原创 2006年06月22日 12:02:00

import java.io.FileOutputStream;
import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.ResultSetMetaData;
import java.sql.SQLException;
import java.sql.Statement;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;
import java.util.HashMap;

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.HSSFRow;
import org.apache.poi.hssf.usermodel.HSSFSheet;
import org.apache.poi.hssf.usermodel.HSSFWorkbook;

public class ExpExcel {
private final static SimpleDateFormat FORMAT = new SimpleDateFormat(
"yyyy-MM-dd hh:mm:ss");

public static void main(String[] args) {
System.out.println("start time:" + FORMAT.format(new Date()));
genericExcel(true);
System.out.println("end   time:" + FORMAT.format(new Date()));
}

/**
 * @param haveTitle
 *            是否导出表头
 */
public static void genericExcel(boolean haveTitle) {
try {
Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver")
.newInstance();
String url = "jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=User4Every";

String user = "sa";
String password = "sa";
Connection conn = java.sql.DriverManager.getConnection(url, user,
password);
String fileName = "E://report.xls";
Statement stmt = conn.createStatement();
ResultSet rs = stmt.executeQuery("select * from TPJBjbxx");

ResultSetMetaData rsmd = rs.getMetaData();
int columnCount = rsmd.getColumnCount();
FileOutputStream fileOut = new FileOutputStream(fileName);
HSSFWorkbook wb = new HSSFWorkbook();
HSSFSheet sheet = wb.createSheet(0 + "");
wb.setSheetName(0, "报表1", (short) 1);
HSSFCellStyle cs = wb.createCellStyle(); // 格式对象
HSSFFont fCol = wb.createFont(); // 字体对象,表头
fCol.setBoldweight(HSSFFont.BOLDWEIGHT_BOLD);
HSSFRow row = null;
HSSFCell cell = null;
int nrow = 0;
String s_colType;
if (haveTitle) {
row = sheet.createRow((short) nrow);
for (int i = 0; i < columnCount; i++) {
cell = row.createCell((short) i);
cell.setEncoding(HSSFCell.ENCODING_UTF_16);
cs.setFont(fCol);
cs.setAlignment(HSSFCellStyle.ALIGN_CENTER);
cell.setCellStyle(cs);
cell.setCellValue(rsmd.getColumnName(i + 1));
}
nrow++;
}
while (rs.next()) {
row = sheet.createRow((short) nrow);
for (int i = 0; i < columnCount; i++) {
s_colType = rsmd.getColumnTypeName(i + 1);
cell = row.createCell((short) i);
cell.setEncoding(HSSFCell.ENCODING_UTF_16);
// 根据字段的类型设置单元格的值
if (s_colType.compareTo("int") == 0) {
cell.setCellValue(rs.getInt(i + 1));
} else if (s_colType.compareTo("decimal") == 0) {
cell.setCellValue(rs.getDouble(i + 1));
} else {
// 除了以上的几种数据类型均以String型对待
cell.setCellValue(rs.getObject(i + 1) + "");
}
}
nrow++;
}
rs.close();
stmt.close();
conn.close();
wb.write(fileOut);
fileOut.close();
} catch (Exception e) {
System.out.println(e.getMessage());
}
}

/**
 * 将ResultSet类型转换为ArrayList类型
 * @param rs
 * @return ArrayList
 * @throws SQLException
 */
public static ArrayList rsToArrayList(ResultSet rs) throws SQLException {
ResultSetMetaData rsmd = rs.getMetaData();
int columnCount = rsmd.getColumnCount();
ArrayList rows = new ArrayList();
while (rs.next()) {
HashMap row = new HashMap();
for (int i = 1; i <= columnCount; i++) {
String name = rsmd.getColumnName(i);
row.put(name, rs.getObject(i));
}
rows.add(row);
}
return rows;
}
}

版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

POI生成Excel一个简单的分页例子

POI生成Excel一个简单的分页例子 其实分页很简单,当前页面记录数满足分页条件后,用工作簿对象再创一个sheet。 实现思路如下: 1、定义每页最大的记录数。 2、根据最大记录...

freemarker生成excel例子

  • 2017-06-27 14:55
  • 2.14MB
  • 下载

poi 实现excel小例子

jsp: 上传Excel function checkFile(file){ var f...

POI实现数据从Excel导入到数据库中例子

利用POI从EXCEL导入数据也是我第一次操作

POI解析excel表格数据例子

例子包含解析2003及之前版本和2007及之后版本。/** * @author Yuansheng.Lei * excel表格导入工具类 */ public class PoiExcel { ...

SpringMVC 使用poi导出excel简单小例子

不说话,上代码。 student.java package com.cn.hnust.domain; import java.io.Serializable; public class Stude...

最近看了点java对excel表的操作,没事写了个例子练习了一下

在这个例子中我使用了一个开源的插件jxl。 初次使用,还有很多不足之处,恳请大家的指教。代码如下: /** * */ package cn.wyh.IO; import java.io.File; /...

一个用poi导出excel的例子

/** * */ package com.ebon.platform.widgets.util; import java.util.List; import java.util.Map; ...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)