java利用poi 读写(导入导出)word、excel(数组越界求解决办法)
来源:互联网 发布:r语言数据按组距分组 编辑:程序博客网 时间:2024/06/05 14:09
java 读写 word excel 简单的实例
需要的jar包有
poi-3.8-20120326.jar
poi-examples-3.8-20120326.jar
poi-excelant-3.8-20120326.jar
poi-ooxml-3.8-20120326.jar
poi-ooxml-schemas-3.8-20120326.jar
poi-scratchpad-3.8-20120326.jar
具体实例代码如下 :
import java.io.ByteArrayInputStream;import java.io.FileInputStream;import java.io.FileOutputStream;import org.apache.poi.hssf.usermodel.HSSFCell;import org.apache.poi.hssf.usermodel.HSSFRichTextString;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.hwpf.extractor.WordExtractor;import org.apache.poi.poifs.filesystem.DirectoryEntry;import org.apache.poi.poifs.filesystem.DocumentEntry;import org.apache.poi.poifs.filesystem.POIFSFileSystem;/** * * @author Administrator * */public class ExcelWord {static public void main(String[] args) throws Exception {// ------------在xls中写入数据-----即导出excelFileOutputStream fos = new FileOutputStream("e:\\text.xls");HSSFWorkbook wb = new HSSFWorkbook();//给sheet命名HSSFSheet s = wb.createSheet("第一个sheet");//wb.setSheetName(0, "first sheet");//第一行HSSFRow row = s.createRow((short)0);//第一行第一列HSSFCell cell = row.createCell((short) 0);HSSFRichTextString hts = new HSSFRichTextString("nihao你好啊啊");cell.setCellValue(hts);//第一行第二列cell = row.createCell((short) 1);HSSFRichTextString hts1 = new HSSFRichTextString("中国龙");cell.setCellValue(hts1);/////第二行HSSFRow row2 = s.createRow((short)1);//第二行第一列HSSFCell cell1 = row2.createCell((short) 0);HSSFRichTextString hts2 = new HSSFRichTextString("第二行数据1111");cell1.setCellValue(hts2);//第二行第二列cell1 = row2.createCell((short) 1);HSSFRichTextString hts3 = new HSSFRichTextString("第二列数据ddd");cell1.setCellValue(hts3);//写入excel 关闭流wb.write(fos);fos.flush();fos.close();// ------------从xls读出数据----即数据导入StringBuffer sb=new StringBuffer();wb = new HSSFWorkbook(new FileInputStream("e:\\text.xls"));//获得第一张sheets = wb.getSheetAt(0);System.out.println("行数:"+s.getLastRowNum());//末行+1for(int i=s.getFirstRowNum();i<s.getLastRowNum()+1;i++){HSSFRow r = s.getRow(i); // 处理空行 if(r == null){ continue ; } System.out.println("列数:"+r.getLastCellNum()); //末列for(int j=r.getFirstCellNum();j<r.getLastCellNum();j++){cell = r.getCell((short) j);// 处理空列 if(r.getCell(j) == null){ continue ; } String content=r.getCell(j).toString(); // System.out.println("第"+i+"行"+"第"+j+"列的值为:"+content); sb.append(content+"||");//if (cell.getCellType() == HSSFCell.CELL_TYPE_STRING) {//System.out.println(cell.getRichStringCellValue());//}}sb.append("\n");}System.out.println(sb.toString());//s = wb.getSheetAt(0);//HSSFRow r = s.getRow(0);//// ------------------在doc中写入----导出word////byte[] a = new String("用到的JAR包如下(可以直接到POI官网上下载也可以在文章的附件中下载):poi-3.9-20121203.jarpoi-ooxml-3.9-20121203.jarpoi-ooxml-schemas-3.9-20121203.jarxmlbeans-2.3.0.jar可能有冲突的JAR包,如果工程lib中存在,需要删除。").getBytes();//ByteArrayInputStream bs = new ByteArrayInputStream(a);//POIFSFileSystem fs = new POIFSFileSystem();//// ///////////////////////////////////DirectoryEntry directory = fs.getRoot();//DocumentEntry de = directory.createDocument("WordDocument", bs);//// 以上两句代码不能省略,否则输出的是乱码//fos = new FileOutputStream("e:\\text.doc");//fs.writeFilesystem(fos);//bs.close();//fos.flush();//fos.close();// ------------从doc读出数据--word数据导入FileInputStream in = new FileInputStream("e:\\text.doc");WordExtractor extractor = new WordExtractor(in);String text = extractor.getText().toString();// 对DOC文件进行提取System.out.println(text);in.close();}}
遇到的问题:
poi 导出数据到word后,再读取该word文档中的数据会抛出数组越界异常,直接读取正常编辑的word文件没有抛错。希望大神指点一二。
1 0
- java利用poi 读写(导入导出)word、excel(数组越界求解决办法)
- 利用poi导出word excel
- java利用poi对excel进行操作可导入导出
- JAVA利用POI实现excel的导入导出
- 利用poi读写excel和word
- java excel poi 导入导出
- JAVA导入导出EXCEL(POI)
- Java POI导入导出excel
- Java 利用poi 导出Excel
- 利用POI组件 导入导出excel
- 利用POI导入和导出excel文件
- 利用POI实现Excel的导入导出
- 利用poi 导入导出excel文件
- 导入/导出Excel利用apache.poi
- java poi导入导出word文档
- JAVA实现Excel导入/导出(POI)
- java poi 导入导出Excel xsl xslx
- 使用Java POI导入导出Excel数据
- Javascript诞生记-C和Self语言的产物
- android ListView详解
- CSS, JavaScript 压缩, 美化, 加密, 解密
- 数据科学家技能地图
- 无题
- java利用poi 读写(导入导出)word、excel(数组越界求解决办法)
- Delphi 异常处理详解
- linux重装后
- Ambari安装
- IIS 7 Service Unavailable的解决办法
- Udp编写一个聊天程序(线程方式)
- Nginx学习笔记(五):怎样使用HTTP配置(上)
- JSP中文参数传至JavaBean出现乱码
- UI第二章常用界面软件