java读写Excel总结

1、jxl操作Excel 

 在开始进行Java写Excel前,我们需要先下一个jxl的jar包,这个jar包中提供了相关读写Excel的方法。随后我们将jxl.jar放到classpath下或者在工程的buildpath中添加jxl.jar后,便可以开始Java读写Excel的神秘之旅了。

Java程序向Excel文件中写数据,包括:1、数据类型的控制;2、单元格及数据的格式化。

数据时外面传进来,暂不调用单元格及数据的格式化函数

public class ExcelIO {

	public ExcelIO()
	{
		
	}
		
   public  static void  writeExcel(String fileName,String sheetName,ArrayList<ArrayList<String>> dim2value)
   {
	 
	   
	   try
		   {
			// 打开文件
		  
			WritableWorkbook book = Workbook.createWorkbook(new File(fileName));
			 // 生成名为“sheet1”的工作表,参数0表示这是第一页   
			WritableSheet sheet = book.createSheet(sheetName, 0);  

			
                
				//Object[][] dim2value = (Object[][])dim2valueList.get(i);

                /*if (dim2value == null || dim2value.length== 0)
                {
                    //MessageBox.Show("您还没有生成统计信息,请生成!");
                    throw new ExcelIOException("需要输出到Excel文件的参数为空,或其内容为空!");
                }*/

                int rows = dim2value.size();
                int cols =dim2value.get(0).size();
              

                if (dim2value != null)
                {

                    for (int k = 0; k <rows; k++)
                    {
                        ArrayList<String> line=dim2value.get(k);
                        for (int j = 0; j <cols; j++)
                        {
                            String oneValue=line.get(j);
              // 在Label对象的构造子中指名单元格位置是第j列第k行(j,k),单元格内容为string   
                            Label label = new Label(j, k, oneValue); 
                            sheet.addCell(label);

                        }
                    }
                }
            
			
			book.write();
			book.close();
		} catch (Exception e) {
			System.out.println(e);
		}
	}
	public static WritableCellFormat getDataCellFormat(CellType type) {
		WritableCellFormat wcf = null;
		try {
			// 字体样式
			if (type == CellType.NUMBER || type == CellType.NUMBER_FORMULA) {// 数字
				NumberFormat nf = new NumberFormat("#.00");
				wcf = new WritableCellFormat(nf);
			} else if (type == CellType.DATE) {// 日期
				DateFormat df = new DateFormat("yyyy-MM-dd hh:mm:ss");
				wcf = new WritableCellFormat(df);
			} else {
				WritableFont wf = new WritableFont(WritableFont.TIMES, 10,
						WritableFont.NO_BOLD, false);
				// 字体颜色
				wf.setColour(Colour.RED);
				wcf = new WritableCellFormat(wf);
			}
			// 对齐方式
			wcf.setAlignment(Alignment.CENTRE);
			wcf.setVerticalAlignment(VerticalAlignment.CENTRE);
			// 设置上边框
			wcf.setBorder(Border.TOP, BorderLineStyle.THIN);
			// 设置下边框
			wcf.setBorder(Border.BOTTOM, BorderLineStyle.THIN);
			// 设置左边框
			wcf.setBorder(Border.LEFT, BorderLineStyle.THIN);
			// 设置右边框
			wcf.setBorder(Border.RIGHT, BorderLineStyle.THIN);
			// 设置背景色
			wcf.setBackground(Colour.YELLOW);
			// 自动换行
			wcf.setWrap(true);
		} catch (WriteException e) {
			e.printStackTrace();
		}
		return wcf;
	}
	public static void main(String[] args) {
ArrayList<ArrayList<String>>  b=new ArrayList<ArrayList<String>>();
		
		ArrayList<String>  a1=new ArrayList<String>();
		a1.add("asd");
		a1.add("gh");
		
		ArrayList<String>  a2=new ArrayList<String>();
		a2.add("tg");
		a2.add("bg");
		
		c.add(a1);
		c.add(a2);
		
		ExcelIO.writeExcel("C:\\testExcel.xls", "sheet1", b);
	}
}


 

参考:http://blog.csdn.net/aking21alinjuju/article/details/5996110

 

 

2、pio操作Excel

Jakarta POI 是apache的子项目,目标是处理ole2对象。它提供了一组操纵Windows文档的Java API

目前比较成熟的是HSSF接口,处理MS Excel(97-2002)对象。它不象我们仅仅是用csv生成的没有格式的可以由Excel转换的东西,而是真正的Excel对象,你可以控制一些属性如sheet,cell等等。

 

写Excel

// 在工作簿里上创建一个sheet,在sheet里创建一行,参数为行号(第二行)
		HSSFWorkbook wb = new HSSFWorkbook();
		HSSFSheet sheet = wb.createSheet("new sheet");
		HSSFRow row = sheet.createRow((short) 1);

		// 在row的这一行创建四个单元格,short型参数为列号。 第一个单元格第1列设
		// 为整数1,其他单格使用简洁的一句式写法,分别设置 为实数、字串、布尔值
		HSSFCell cell = row.createCell((short) 0);
		cell.setCellValue(1);
		row.createCell((short) 1).setCellValue(1.2);
		row.createCell((short) 2).setCellValue("Hello World!");
		row.createCell((short) 3).setCellValue(true);

		// 写入文件
		FileOutputStream fileOut = new FileOutputStream("c:\\workbook.xls");
		wb.write(fileOut);
		fileOut.close();


读Excel

try{
   POIFSFileSystem fs=new POIFSFileSystem(new FileInputStream("c:\\workbook.xls"));
   HSSFWorkbook wb = new HSSFWorkbook(fs);
   HSSFSheet sheet = wb.getSheetAt(0);
   HSSFRow row = sheet.getRow(0);
   HSSFCell cell = row.getCell((short) 0);
   String msg = cell.getStringCellValue();
   System.out.println(msg);
}catch(Exception e){
   e.printStackTrace();
}


 

参考http://blog.csdn.net/s_ongfei/article/details/2794570

 Eclipese从入门到精通ch22

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值