我看过了关于jxl的相关教程,懂了一些,但是时间太紧,来不及自己编了
我从数据库查询返回的数据,用Jtable的格式显示,希望能直接把看到的Jtable存为Excel输出
希望做过相关东西的兄弟帮助以下
今天晚上等到11点,明天白天接着等
兄弟们帮帮忙吧。
解决问题马上结贴
我从数据库查询返回的数据,用Jtable的格式显示,希望能直接把看到的Jtable存为Excel输出
希望做过相关东西的兄弟帮助以下
今天晚上等到11点,明天白天接着等
兄弟们帮帮忙吧。
解决问题马上结贴
解决方案 »
- 关于final 关键字的一个疑问
- 自定义组件的UI实现时报IllegalAccessError错误
- 如何让文本框对齐
- java 怎么样做出图片淡入浅出的效果
- 关于java的泛型编程!
- 关于以下inputStream的两种使用方法有何区别
- 在线等待!!IDEA 如何压缩java程序为可执行的jar文件?
- 初学java,看java编程思想2nd(侯捷)需要多久?
- mm是新手,请教线程调度问题.附程序.多谢各位大哥大姐!!
- 在java 的本地程序里面怎么调用DOS 的命令 例如:copy 等等???
- 如何在WEB服务中将本地方法的.DLL文件加进来?
- 还是关于String的问题,为什么两个结果不一样
2.http://blog.csdn.net/wxyxl/archive/2001/05/19/2654.aspx
只要弄明白了,上手很快的楼主再好好看看,用不料多少时间的
既然很简单,兄弟们就帮帮忙吧
虽然你给我的文章不是很对题,但是对我还是很有帮助,谢谢你了
方法如下
import org.apache.poi.hssf.usermodel.*;
要去载poi这个包
public void toSellExcel(ResultSet rs, String filepath){
try { // 创建新的Excel 工作簿
HSSFWorkbook workbook = new HSSFWorkbook();
// 在Excel工作簿中建一工作表,其名为缺省值
HSSFSheet sheet = workbook.createSheet();
//设置Excel的显示格式 //设置行头
String[] str = new String[10];
str[0] = "帐号";
str[1] = "帐号名称";
str[2] = "产品编号";
str[3] = "产品名称";
str[4] = "单价";
str[5] = "正常数量";
str[6] = "合计金额";
str[7] = "退保数量";
str[8] = "合计金额";
str[9] = "实收金额";
HSSFRow row;
HSSFCell cell;
HSSFCellStyle style;
HSSFFont hf;
for (int i = 0; i < 1; i++) {
//在索引0的位置创建行(最顶端的行)
row = sheet.createRow((short) i);
for (int j = 0, a = 0; j < 10; a++, j++) {
//在索引0的位置创建单元格(左上端)(相当于列数)
cell = row.createCell((short) j);
//定义单元格为字符串类型
cell.setCellType(HSSFCell.CELL_TYPE_STRING); //定义样式
style = workbook.createCellStyle();
//创建工作本的字体
hf = workbook.createFont();
hf.setFontName("楷体_GB2312");
style.setFont(hf);
//设置列的属性
cell.setEncoding(HSSFCell.ENCODING_UTF_16);
cell.setCellStyle(style);
//在所创建的单元格填入值
if (i == 0) {
cell.setCellValue(str[a]);
}
}
} int n = 1, m = 0, s = 0;
// 获取结果集的行数
while (rs.next()) {
row = sheet.createRow((short) n++); //从第1行开始
cell = row.createCell((short) m++); //从第0列开始
//定义单元格为字符串类型
cell.setCellType(HSSFCell.CELL_TYPE_STRING);
//填加帐号
String user =rs.getString("Company_user");
cell.setCellValue(user== null?"-----":user);
//填加帐号名称
cell = row.createCell((short) m++); //从第5列开始
//定义样式
style = workbook.createCellStyle();
//创建工作本的字体
hf = workbook.createFont();
hf.setFontName("楷体_GB2312");
style.setFont(hf);
//设置列的属性
cell.setEncoding(HSSFCell.ENCODING_UTF_16);
cell.setCellStyle(style);
String name = rs.getString("InsurCompanyName");
cell.setCellValue(name ==null?"-----":name);
//填加产品编号
String dpsum =rs.getString("InsurProductNo");
cell = row.createCell((short) m++); //从第6列开始
cell.setCellValue(dpsum==null?"0":dpsum);
//填加产品名称
cell = row.createCell((short) m++); //从第7列开始
//定义样式
style = workbook.createCellStyle();
//创建工作本的字体
hf = workbook.createFont();
hf.setFontName("楷体_GB2312");
style.setFont(hf);
//设置列的属性
cell.setEncoding(HSSFCell.ENCODING_UTF_16);
cell.setCellStyle(style);
String StrTemp = rs.getString("InsurProductName");
cell.setCellValue(StrTemp==null?"-----":StrTemp);
//填加单价
cell = row.createCell((short) m++); //从第8列开始 Tel
String blank = rs.getString("InsurFare");
cell.setCellValue(blank==null?"0":blank);
//填加正常数量
cell = row.createCell((short) m++); //从第9列开始
String retu = rs.getString("etk0");
cell.setCellValue(retu==null?"0":retu);
//使用合计金额
cell = row.createCell((short) m++); //从第9列开始
String orders = rs.getString("count0");
cell.setCellValue(orders==null?"0":orders);
//剩余退保数量
cell = row.createCell((short) m++); //从第9列开始
String usum =rs.getString("etk1");
cell.setCellValue(usum==null?"0":usum);
//退保合计金额
cell = row.createCell((short) m++); //从第9列开始
String qiepiao = rs.getString("count1");
cell.setCellValue(qiepiao==null?"0":qiepiao);
//实收金额
cell = row.createCell((short) m++); //从第9列开始
cell.setCellValue(orders==null?"0":orders);
if (m >=9) {
m = 0;
} }
// 新建一输出文件流
FileOutputStream fOut = new FileOutputStream(filepath);
// 把相应的Excel 工作簿存盘
workbook.write(fOut); fOut.flush();
// 操作结束,关闭文件
fOut.close(); } catch (Exception e) {
System.out.println("已运行 xlCreate() :错误信息 " + e);
throw new RuntimeException(e.getMessage());
}
}
真的太感谢你了,很有用
可是还有几个细节问题不太清楚,你能加我的QQ吗?
10292329
太感谢了