乔山办公网我们一直在努力
您的位置:乔山办公网 > excel表格制作 > 急急急用POI导出<em>excel</em>执行<em>HSSF</em&g

急急急用POI导出<em>excel</em>执行<em>HSSF</em&g

作者:乔山办公网日期:

返回目录:excel表格制作


今天在使用POI将float类型数据写EXCEL入时候会出现写入的数值与实际数值不符的问题;例如我将数据4444.4443写入EXCEL中(已将数据精度设置为:df.getFormat("#,##0.0"))出现问题图及正常图详见下图。此问题在从数据库中读出e68a847a64361记录写入EXCEL时出现,直接往EXCEL文件中写入数据时完全正常;在数据库读出记录后打印出来也是完全正常的,请高手赐教,部分代码如下:
从数据库读出记录后写入:
import java.io.FileOutputStream;
import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.Statement;

import jcmh.com.bean.JdbcUtils;

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

public class TestPoi {

public static void main(String[] args) throws Exception{
try{
FileOutputStream out = new FileOutputStream("dateFormat.xls");
HSSFWorkbook hssfworkbook = new HSSFWorkbook();
Connection conn = JdbcUtils.getConnection();
Statement stmt = conn.createStatement();
HSSFSheet sheet = hssfworkbook.createSheet("new sheet");
HSSFCellStyle cs = hssfworkbook.createCellStyle();
HSSFDataFormat df = hssfworkbook.createDataFormat();
cs.setDataFormat(df.getFormat("#,##0.0"));
ResultSet rs = stmt.executeQuery("select price from test.test"); //就一条记录为"4444.4443"
while(rs.next()){
HSSFRow row = sheet.createRow(0);
HSSFCell cell = row.createCell(0);
System.out.println(rs.getFloat(1));
cell.setCellValue(rs.getFloat(1));
cell.setCellStyle(cs);
}
hssfworkbook.write(out);
out.close();
}catch(Exception e){}
}
}
直接写入时代码如下:
import java.io.FileOutputStream;
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.HSSFRow;
import org.apache.poi.hssf.usermodel.HSSFSheet;
import org.apache.poi.hssf.usermodel.HSSFWorkbook;
public class TestPoi {

public static void main(String[] args) throws Exception{
try{
FileOutputStream out = new FileOutputStream("dateFormat.xls");
HSSFWorkbook hssfworkbook = new HSSFWorkbook();
HSSFSheet sheet = hssfworkbook.createSheet("new sheet");
HSSFCellStyle cs = hssfworkbook.createCellStyle();
HSSFDataFormat df =hssfworkbook.createDataFormat();
cs.setDataFormat(df.getFormat("#,##0.0"));
HSSFRow row = sheet.createRow(0);
HSSFCell cell = row.createCell(0);
cell.setCellValue(4444.4443);
cell.setCellStyle(cs);
hssfworkbook.write(out);
out.close();
}catch(Exception e){}
}

看看吧,这是我空间的一篇文章。POI 生成Excel,支持下载。附带案例。

http://hi.baidu.com/a363359983/blog/item/a4901dffda3466265c6008f4.html

如果可以解决你的问题,请采纳。
2007版本的需要使用XSSFWorkbook来处理,如果不确定读取的excel版本的话可以写的if判断下如果后缀为".xls"创建HSSFWorkbook 否则创建 XSSFWorkbook来对文件进行操作即可.
Workbook excelWB = null;
Sheet oneSheet = null;
Row oneRow = null;
Cell oneCell = null;
.....
if("xls".equals(excFilSuff)){
excelWB = new HSSFWorkbook(excelFile);
}else{
excelWB = new XSSFWorkbook(excelFile);
}
//获取第0个sheet对象
oneSheet = excelWB.getSheetAt(0);
//获取每行对象
oneRow = oneSheet.getRow(rowNum);
// 获取第几列对象
oneCell = oneRow.getCell(cellNum);

$pngname = $openid.'.png';
if(imagepng($QR, $pngname)){
imagedestroy($QR);
$qrurl = W_DOMAIN.''.$pngname;
$this->assign('qrcode',$qrurl);
$this->display();
}
本文标签:hssf excel(1)hssf(1)

相关阅读

关键词不能为空
极力推荐

ppt怎么做_excel表格制作_office365_word文档_365办公网