利用poi生成excel表格

本文提供了一个使用Java和Apache POI库将数据导出到Excel文件的示例代码。该示例展示了如何创建Excel工作簿、设置样式、填充单元格数据以及合并单元格等操作。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

import java.io.FileOutputStream;
import java.util.List;

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;
import org.apache.poi.hssf.util.Region;

public class ExportToExcel {

 /**
  * @description
  *
  * @param args
  */
 public static void main(String[] args)
 {
  List listRow = null;
  List listCell = null;
  // TODO Auto-generated method stub
  ExportToExcel(listRow,listCell);
 }
 public static void ExportToExcel(List listRow,List listCell)
 {
    try
    {
       HSSFWorkbook wb = new HSSFWorkbook();
       HSSFSheet sheet = wb.createSheet("sheet1");
       HSSFRow row = null;
       HSSFCell cell = null;
      
       //width size
//        sheet.setDefaultColumnWidth((short)500);
      
       //style
       HSSFCellStyle cs = wb.createCellStyle();//create astyle
       HSSFFont littleFont = wb.createFont();//create a Font
       littleFont.setFontName("SimSun");
       littleFont.setFontHeightInPoints((short)7);
       cs.setFont(littleFont);//set font
       cs.setAlignment(HSSFCellStyle.ALIGN_CENTER);//align center
       cs.setVerticalAlignment(HSSFCellStyle.VERTICAL_CENTER);//valign middle
       cs.setBorderBottom(HSSFCellStyle.BORDER_THIN);//bottom border
       cs.setBorderLeft(HSSFCellStyle.BORDER_THIN);//left border
       cs.setBorderRight(HSSFCellStyle.BORDER_THIN);//right border
       cs.setBorderTop(HSSFCellStyle.BORDER_THIN);//top border
            
       //file name
       /*
       row = sheet.createRow((short)0);
       row.setHeight((short)300);
       cell = row.createCell((short)0);
       cell.setEncoding(HSSFCell.ENCODING_UTF_16);
       cell.setCellValue("This is a test out print");
       sheet.addMergedRegion(new Region(0,(short)0,0,(short)7));//merged region
      
      
       row = sheet.createRow((short)1);
       row.setHeight((short)300);
       cell = row.createCell((short)0);
       cell.setEncoding(HSSFCell.ENCODING_UTF_16);
       cell.setCellValue("name");
       sheet.addMergedRegion(new Region(1,(short)0,1,(short)1));
      
       cell = row.createCell((short)2);
       cell.setEncoding(HSSFCell.ENCODING_UTF_16);
       cell.setCellValue("sex");
       sheet.addMergedRegion(new Region(1,(short)2,1,(short)3));
      
       cell = row.createCell((short)4);
       cell.setEncoding(HSSFCell.ENCODING_UTF_16);
       cell.setCellValue("nation");
       sheet.addMergedRegion(new Region(1,(short)4,1,(short)5));
      
       cell = row.createCell((short)6);
       cell.setEncoding(HSSFCell.ENCODING_UTF_16);
       cell.setCellValue("native place");
       sheet.addMergedRegion(new Region(1,(short)6,1,(short)7));
      
      
       row = sheet.createRow((short)2);
       row.setHeight((short)300);
       cell = row.createCell((short)0);
       cell.setEncoding(HSSFCell.ENCODING_UTF_16);
       cell.setCellValue("aaa");
       sheet.addMergedRegion(new Region(2,(short)0,2,(short)1));
      
      
       cell = row.createCell((short)2);
       cell.setEncoding(HSSFCell.ENCODING_UTF_16);
       cell.setCellValue("male");
       sheet.addMergedRegion(new Region(2,(short)2,2,(short)3));
      
       cell = row.createCell((short)4);
       cell.setEncoding(HSSFCell.ENCODING_UTF_16);
       cell.setCellValue("han");
       sheet.addMergedRegion(new Region(2,(short)4,2,(short)5));
      
       cell = row.createCell((short)6);
       cell.setEncoding(HSSFCell.ENCODING_UTF_16);
       cell.setCellValue("chengduaa");
       sheet.addMergedRegion(new Region(2,(short)6,2,(short)7));
      
       row = sheet.createRow((short)3);
       row.setHeight((short)300);
       cell = row.createCell((short)0);
       cell.setEncoding(HSSFCell.ENCODING_UTF_16);
       cell.setCellValue("bbb");
       sheet.addMergedRegion(new Region(3,(short)0,3,(short)1));
      
       cell = row.createCell((short)2);
       cell.setEncoding(HSSFCell.ENCODING_UTF_16);
       cell.setCellValue("man");
       sheet.addMergedRegion(new Region(3,(short)2,3,(short)3));
      
       cell = row.createCell((short)4);
       cell.setEncoding(HSSFCell.ENCODING_UTF_16);
       cell.setCellValue("han");
       sheet.addMergedRegion(new Region(3,(short)4,3,(short)5));
      
       cell = row.createCell((short)6);
       cell.setEncoding(HSSFCell.ENCODING_UTF_16);
       cell.setCellValue("chengduaa");
       sheet.addMergedRegion(new Region(3,(short)6,3,(short)7));
       */
      
       for(short i=0; i <listRow.size()+1;i++)

 {
    row = sheet.createRow(i);
    row.setHeight((short)300);
       for(short j=0; j<listCell.size();j++)        

      {

      cell = row.createCell(j);
        if(i==0)
        {
         cell.setCellValue(listCell.get(j).toString());
        }
        else if(i<=listRow.size())
        { 
         cell.setCellValue(((List)listRow.get(i-1)).get(j).toString());
        }
        cell.setEncoding(HSSFCell.ENCODING_UTF_16);
       }
     }
      
       //println
       FileOutputStream fileOut = new FileOutputStream("C:\\Documents and Settings\\wei\\Desktop\\ReprotByArtist20070226.xls");
       wb.write(fileOut);
       fileOut.close();
       System.out.println("Export successfully...");
   }
    catch (Exception e)
    {
       e.printStackTrace();
    }
 }
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值