poi,java向 excel文件写数据(缺点,HSSFWorkbook不支持图片) 例子

package sample2;

 

import java.io.FileNotFoundException;

import java.io.FileOutputStream;

import java.io.IOException;

import java.util.Calendar;

 

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;

 

/**

 * poijava excel文件写数据(缺点,不支持图片)

 * @author steve_wang_victor

 *

 */

public class PoiExcelwriterSample2 {

 

    private static short XLS_ENCODING = HSSFWorkbook.ENCODING_UTF_16;// 设置cell编码解决中文高位字节截断

    private static String DATE_FORMAT = " m/d/yy "; // "m/d/yy h:mm" 定制日期格式

    private static String NUMBER_FORMAT = " #,##0.00 ";// 定制浮点数格式

    private String xlsFileName;//文件名

    private HSSFWorkbook workbook;//工作薄

    private HSSFSheet sheet;//工作表

    private HSSFRow row;//

    /**

     * 初始化Excel

     *

     * @param fileName

     *            导出文件名

     */

    public PoiExcelwriterSample2(String fileName) {

       this.xlsFileName = fileName;

       this.workbook = new HSSFWorkbook();

       this.sheet = workbook.createSheet();

    }

    public   static   void  main(String[] args)   {

        System.out.println( " 开始导出Excel文件 " );

        PoiExcelwriterSample2 e  =   new  PoiExcelwriterSample2( "d://test.xls" );//d盘下新建一个test.xls文件

        e.createRow( 0 );

        e.setCell( 0 ,  " 编号 " );

        e.setCell( 1 ,  " 名称 " );

        e.setCell( 2 ,  " 日期 " );

        e.setCell( 3 ,  " 金额 " );

        e.createRow( 1 );

        e.setCell( 0 ,  1 );

        e.setCell( 1 ,  " 工商银行 " );

        e.setCell( 2 , Calendar.getInstance());

        e.setCell( 3 ,  111123.99 );

        e.createRow( 2 );

        e.setCell( 0 ,  2 );

        e.setCell( 1 ,  " 招商银行 " );

        e.setCell( 2 , Calendar.getInstance());

        e.setCell( 3 ,  222456.88 );

         try    {

            e.exportXLS();

            System.out.println( " 导出Excel文件[成功] " );

        }   catch  (XLSException e1)   {

            System.out.println( " 导出Excel文件[失败] " );

            e1.printStackTrace();

        }

    }

 

    /**

     * 导出Excel文件

     *

     * @throws XLSException

     */

    public void exportXLS() throws XLSException {

       try {

           FileOutputStream fOut = new FileOutputStream(xlsFileName);

           workbook.write(fOut);

           fOut.flush();

           fOut.close();

       } catch (FileNotFoundException e) {

           throw new XLSException(" 生成导出Excel文件出错! ", e);

       } catch (IOException e) {

           throw new XLSException(" 写入Excel文件出错! ", e);

       }

 

    }

    /**

     * 增加一行

     *

     * @param index

     *            行号

     */

    public void createRow(int index) {

       this.row = this.sheet.createRow(index);

    }

    /**

     * 设置单元格

     *

     * @param index

     *            列号

     * @param value

     *            单元格填充值

     */

    public void setCell(int index, String value) {

       HSSFCell cell = this.row.createCell((short) index);

       cell.setCellType(HSSFCell.CELL_TYPE_STRING);

       cell.setEncoding(XLS_ENCODING);

       cell.setCellValue(value);

    }

 

    /**

     * 设置单元格

     *

     * @param index

     *            列号

     * @param value

     *            单元格填充值

     */

    public void setCell(int index, Calendar value) {

       HSSFCell cell = this.row.createCell((short) index);

       cell.setEncoding(XLS_ENCODING);

       cell.setCellValue(value.getTime());

       HSSFCellStyle cellStyle = workbook.createCellStyle(); // 建立新的cell样式

       cellStyle.setDataFormat(HSSFDataFormat.getBuiltinFormat(DATE_FORMAT)); // 设置cell样式为定制的日期格式

       cell.setCellStyle(cellStyle); // 设置该cell日期的显示格式

    }

 

    /**

     * 设置单元格

     *

     * @param index

     *            列号

     * @param value

     *            单元格填充值

     */

    public void setCell(int index, int value) {

       HSSFCell cell = this.row.createCell((short) index);

       cell.setCellType(HSSFCell.CELL_TYPE_NUMERIC);

       cell.setCellValue(value);

    }

    /**

     * 设置单元格

     *

     * @param index

     *            列号

     * @param value

     *            单元格填充值

     */

    public void setCell(int index, double value) {

       HSSFCell cell = this.row.createCell((short) index);

       cell.setCellType(HSSFCell.CELL_TYPE_NUMERIC);

       cell.setCellValue(value);

       HSSFCellStyle cellStyle = workbook.createCellStyle(); // 建立新的cell样式

       HSSFDataFormat format = workbook.createDataFormat();

       cellStyle.setDataFormat(format.getFormat(NUMBER_FORMAT)); // 设置cell样式为定制的浮点数格式

       cell.setCellStyle(cellStyle); // 设置该cell浮点数的显示格式

    }

 

}

 

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值