用POI和JXL 楼主可以去google上查下相关的内容,比较多代码也不少。
如果要实现比较复杂的功能的话,用POI的吧。
如果要实现比较复杂的功能的话,用POI的吧。
解决方案 »
- 问个小问题~很简单的~~~
- mysql 中文显示乱码问题, 急!高分求助
- 问个hibernate+MySql的问题
- 关于JSF和Spring整合的DelegatingVariableResolver的疑问
- [原创] 利用压缩网页来提升网站浏览速度
- 怎样实现一个状态监控功能
- 散分,学习web service ,求web service 资料,不要深奥的理论。要实用
- 怎么样把一个添加一个新的应用啊?
- 问个struts的问题
- java.sql.SQLException: Access denied for user 'ssh'@'localhost' (using password:
- 散散分
- hibernate主外键问题,急,在线等
// 如要新建一名为"效益指标"的工作表,其语句为:
// HSSFSheet sheet = workbook.createSheet("效益指标"); HSSFSheet sheet = workbook.createSheet(); // 在索引0的位置创建行(最顶端的行) HSSFRow row = sheet.createRow((short)0); //在索引0的位置创建单元格(左上端)
HSSFCell cell = row.createCell((short) 0);
// 定义单元格为字符串类型
cell.setCellType(HSSFCell.CELL_TYPE_STRING);
// 在单元格中输入一些内容
cell.setCellValue("增加值");
// 新建一输出文件流
FileOutputStream fOut = new FileOutputStream(outputFile);
// 把相应的Excel 工作簿存盘
workbook.write(fOut);
fOut.flush();
// 操作结束,关闭文件
fOut.close();
代码:
import java.io.*;
import java.sql.*;
import org.apache.poi.hssf.usermodel.*;public class AppMain {
public AppMain() {
}
public static void main(String[] args) {
try {
HSSFWorkbook wb = new HSSFWorkbook();
HSSFSheet sheet =null;
/**连接ORACLE的数据库,关键在于两个系统级的VIEW:
all_tab_columns 记录着ORACLE所有的字段定义信息.
DBA_COL_COMMENTS 记录着字段的注释信息,*/
Class.forName("oracle.jdbc.driver.OracleDriver");
Connection con = DriverManager.getConnection("jdbc:oracle:thin:@127.0.0.1:1521:ORACLE","用户名","密码");
Statement stmt = con.createStatement();
StringBuffer strbuf = new StringBuffer();
strbuf.append("SELECT A.*,B.comments");
strbuf.append(" FROM all_tab_columns A,DBA_COL_COMMENTS B");
strbuf.append(" WHERE A.owner=B.owner");
strbuf.append(" AND A.table_name=B.table_name");
strbuf.append(" AND A.COLUMN_NAME=B.COLUMN_NAME");//owner是建立表的用户名
strbuf.append(" AND A.owner=myuser");
strbuf.append(" ORDER BY A.TABLE_NAME");
ResultSet rs = stmt.executeQuery(strbuf.toString()); String tb = "";
int k = 0;
while (rs.next()) {
//对每个表生成一个新的sheet,并以表名命名
if (!tb.equals(rs.getString("TABLE_NAME"))) {
sheet = wb.createSheet(rs.getString("TABLE_NAME"));//设置表头的说明
HSSFRow row = sheet.createRow(0);
setCellGBKValue(row.createCell((short) 0),"字段名");
setCellGBKValue(row.createCell((short) 1),"字段类型");
setCellGBKValue(row.createCell((short) 2),"字段长度");
setCellGBKValue(row.createCell((short) 3),"数字长度");
setCellGBKValue(row.createCell((short) 4),"小数位数");
setCellGBKValue(row.createCell((short) 5),"能否为NULL");
setCellGBKValue(row.createCell((short) 6),"字段说明");
k = 1;
} else {
k++;
}
tb = rs.getString("TABLE_NAME");
HSSFRow row = sheet.createRow(k);
row.createCell((short) 0).setCellValue(rs.getString("COLUMN_NAME"));
row.createCell((short) 1).setCellValue(rs.getString("DATA_TYPE"));
row.createCell((short) 2).setCellValue(rs.getString("DATA_LENGTH"));
row.createCell((short) 3).setCellValue(rs.getString("DATA_PRECISION"));
row.createCell((short) 4).setCellValue(rs.getString("DATA_SCALE"));
row.createCell((short) 5).setCellValue(rs.getString("NULLABLE"));
setCellGBKValue(row.createCell((short) 6),rs.getString("COMMENTS")); } //把生成的EXCEL文件输出保存
FileOutputStream fileOut = new FileOutputStream("F:\\数据字典.xls");
wb.write(fileOut);
fileOut.close(); rs.close();
stmt.close();
con.close();
} catch (Exception e) {
e.printStackTrace();
}
}/**这个函数是为了设置一个CELL为中文字符串*/
private static void setCellGBKValue(HSSFCell cell, String value) {
cell.setCellType(HSSFCell.CELL_TYPE_STRING);//设置CELL的编码信息
cell.setEncoding(HSSFCell.ENCODING_UTF_16);
cell.setCellValue(value);
}
}