java操作word、execl总结

Word

1jacob  JACOB一个Java-COM中间件.通过这个组件你可以在Java应用程序中调用COM组件和Win32 libraries

需要用到的文件主要有jacob.jar jacob.dll

 

过程:

1、  项目中引入jacob.jar【程序中要用到jar文件中的class文件】

2、  jacob.dll放入系统jre/bin目录下:如果使用Eclipse的默认jdk,放入C:/Program Files/MyEclipse 6.5/jre/bin,如果用系统中安装的jdk,则放入C:/Program Files/Java/jdk1.5.0_04/jre/bin

3、  网上有很多资料说将放入系统文件夹C:/WINDOWS/system32中,我试了,不需要

注:自己在操作过程中遇到的问题解决:

1、  程序找不到动态链接库?

解决方法: a、检查文件的jdk目录下的jre/bin中有没有dll文件

                  b、确认自己机子上确实安装了offic2003,我在操作的时候机子安装的是2007,纠结了好长时间

       2、可能涉及的问题:

                            a、动态链接库的版本和windows的版本不一致

                            b、如果确实要将动态链接库文件放入C:/WINDOWS/system32下,就需要注册dll文件,具体方法为:regsvr32  jacob.dll,我在操作的时候发现系统提示:已经加载jacob.dll文件,但没有找到DllRegisterServer输入点。无法注册文件。查询了很多资料,这和dll问价的类型有关系,有些文件时允许注册的,有些不能。

 

 

 

Excel

1jacob   word处理

2jxl

3poi

Poi中的具体方法:

HSSFWorkbook wb = new HSSFWorkbook(); //创建文件

       HSSFSheet sheet = wb.createSheet();//创建sheet

       wb.setSheetName(0, filename);      //设置sheet名称,0sheet编号,默认从0开始

       HSSFRow row = null;

       HSSFCell cell = null;

       row = sheet.createRow(0);   //0为行号

       cell = row.createCell((short) 0); //0为列号

几个有用的方法:

1、得到第isheet中的数据,返回类型为List<List>

public static List getDatasInSheet(HSSFWorkbook workbook, int sheetNumber,

           int firstrow) {

       List<List> result = new ArrayList<List>();

 

       HSSFSheet sheet = workbook.getSheetAt(sheetNumber);

       int rowCount = sheet.getLastRowNum();

       if (rowCount < 1) {

           return result;

       }

 

for (int rowIndex = firstrow; rowIndex <= rowCount; rowIndex++) {

           HSSFRow row = sheet.getRow(rowIndex);

           if (null != row) {

              List<Object> rowData = new ArrayList<Object>();

              int cellCount = row.getLastCellNum();

              int nullnum = 0;

 

              for (short cellIndex = 0; cellIndex < cellCount; cellIndex++) {

                  HSSFCell cell = row.getCell(cellIndex);

                  Object cellStr = getCellString(cell);

 

                  rowData.add(cellStr);

              }

              result.add(rowData);

           }

       }

 

       return result;

    }

 

 

2、  得到cell中的内容

private static Object getCellString(HSSFCell cell) {

       // TODO Auto-generated method stub

       Object result = null;

       if (cell != null) {

           // 单元格类型:Numeric:0,String:1,Formula:2,Blank:3,Boolean:4,Error:5

           int cellType = cell.getCellType();

           switch (cellType) {

           case HSSFCell.CELL_TYPE_STRING:

              result = cell.getStringCellValue();

              break;

           case HSSFCell.CELL_TYPE_NUMERIC:

              result = cell.getNumericCellValue();

              break;

           case HSSFCell.CELL_TYPE_FORMULA:

              result = cell.getNumericCellValue();

              break;

           case HSSFCell.CELL_TYPE_BOOLEAN:

              result = cell.getBooleanCellValue();

              break;

           case HSSFCell.CELL_TYPE_BLANK:

              result = null;

              break;

           case HSSFCell.CELL_TYPE_ERROR:

              result = null;

              break;

           default:

              System.out.println("枚举了所有类型");

              break;

           }

       }

       return result;

    }

 

3、  设置单元格的边框

 

private static void setCellBorder1(HSSFWorkbook wb,HSSFCell cell){

        CellStyle style = wb.createCellStyle();

        style.setBorderBottom(CellStyle.BORDER_THIN);

        style.setBorderLeft(CellStyle.BORDER_THIN);

        style.setBorderRight(CellStyle.BORDER_THIN);

        style.setBorderTop(CellStyle.BORDER_THIN);

        style.setFillBackgroundColor((short)10);

        cell.setCellStyle(style);

    }

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值