读取word excel 文件

22 篇文章 0 订阅

[java]
  view plain copy print ?
  1. <img src="http://hi.csdn.net/attachment/201108/26/0_1314369590D77f.gif" alt="">  
[java]  view plain copy print ?
  1. <img src="http://hi.csdn.net/attachment/201108/26/0_1314369485zJb1.gif" alt="">  




[java]  view plain copy print ?
  1.   
[java]  view plain copy print ?
  1.   
[java]  view plain copy print ?
  1. 下载一个poi库http://poi.apache.org/download.html  
  2. 主要的api  
  3.   
  4. //读取word例子可以导出图片  
  5. package org.evilbinary.word;  
  6. importjava.io.FileInputStream;  
  7. importjava.io.FileNotFoundException;  
  8. importjava.io.FileOutputStream;  
  9. importjava.io.IOException;  
  10. importjava.io.OutputStream;  
  11. importjava.util.ArrayList;  
  12. importjava.util.List;  
  13.   
  14. importorg.apache.poi.hwpf.HWPFDocument;  
  15. importorg.apache.poi.hwpf.extractor.WordExtractor;  
  16. importorg.apache.poi.hwpf.model.PAPBinTable;  
  17. importorg.apache.poi.hwpf.model.PAPX;  
  18. importorg.apache.poi.hwpf.model.PicturesTable;  
  19. importorg.apache.poi.hwpf.model.TextPiece;  
  20. importorg.apache.poi.hwpf.usermodel.CharacterRun;  
  21. importorg.apache.poi.hwpf.usermodel.Paragraph;  
  22. importorg.apache.poi.hwpf.usermodel.Picture;  
  23. importorg.apache.poi.hwpf.usermodel.Range;  
  24. importorg.apache.poi.hwpf.usermodel.Section;  
  25.   
  26. publicclass Main {  
  27. privatestatic final boolean DEBUG=true;  
  28. publicstatic void wordTest() {  
  29. try{  
  30. FileInputStreamfis = new FileInputStream("D:\\Test\\word\\2.doc");  
  31.   
  32. HWPFDocumentdoc = new HWPFDocument(fis);  
  33.   
  34. PicturesTablepictuesTable = doc.getPicturesTable();  
  35. List<Picture>allPics = pictuesTable.getAllPictures();  
  36. for(Picture p : allPics) {  
  37. System.out.println("size:"+ p.getSize() + " name:"  
  38. +p.suggestFullFileName() + " ext:"  
  39. +p.suggestFileExtension());  
  40. FileOutputStreamfos = new FileOutputStream("D:\\Test\\word\\"  
  41. +p.suggestFullFileName());  
  42. fos.write(p.getContent());  
  43. fos.close();  
  44. }  
  45. Ranger = doc.getRange();  
  46. System.out.println("Sectionsize:" + r.numSections());  
  47. StringBuildersb = new StringBuilder();  
  48. intpicPos = 0;  
  49. for(int i = 0; i < r.numSections(); i++) {  
  50. Sections = r.getSection(i);  
  51. System.out.println("Paragraphssize:" + s.numParagraphs());  
  52. for(int j = 0; j < s.numParagraphs(); j++) {  
  53. Paragraphp = s.getParagraph(j);  
  54. for(int z = 0; z < p.numCharacterRuns(); z++) {  
  55. CharacterRunrun = p.getCharacterRun(z);  
  56. if(run.getPicOffset() <= 0) {  
  57. sb.append(run.text());  
  58. //System.out.print(text);  
  59. }else {  
  60. sb.append("picoffset:"+ run.getPicOffset()  
  61. +" len:" + run.text().length());  
  62.   
  63. //System.out.println("picoffset:"+run.getPicOffset()+"  
  64. //len:"+ run.text().length());  
  65. if(allPics.size() > picPos) {  
  66. Picturepic = allPics.get(picPos);  
  67. if(pic != null) {  
  68. //System.out.println("size:"+pic.getSize()+"  
  69. //name:"+pic.suggestFullFileName()+"  
  70. //ext:"+pic.suggestFileExtension());  
  71. sb.append("size:"+ pic.getSize()  
  72. +" name:"  
  73. +pic.suggestFullFileName()  
  74. +" ext:"  
  75. +pic.suggestFileExtension());  
  76. picPos++;  
  77. }  
  78. }  
  79. }  
  80. }  
  81.   
  82. }  
  83.   
  84. }  
  85. System.out.println(sb);  
  86. fis.close();  
  87.   
  88. }catch (FileNotFoundException e) {  
  89. //TODO Auto-generated catch block  
  90. e.printStackTrace();  
  91. }catch (IOException e) {  
  92. //TODO Auto-generated catch block  
  93. e.printStackTrace();  
  94. }  
  95. }  
  96.   
  97. /** 
  98. * @param args 
  99. */  
  100. publicstatic void main(String[] args) {  
  101. wordTest();  
  102. }  
  103. //读取excel的例子  
  104. packageorg.evilbinary.excel;  
  105.   
  106. importjava.io.File;  
  107. importjava.io.FileInputStream;  
  108. importjava.io.FileNotFoundException;  
  109. importjava.io.FileOutputStream;  
  110. importjava.io.IOException;  
  111. importjava.util.Iterator;  
  112. importorg.apache.poi.ss.format.CellFormatResult;  
  113. importorg.apache.poi.hssf.usermodel.HSSFWorkbook;  
  114. importorg.apache.poi.hssf.util.CellReference;  
  115. importorg.apache.poi.openxml4j.exceptions.InvalidFormatException;  
  116. importorg.apache.poi.ss.format.CellFormat;  
  117. importorg.apache.poi.ss.usermodel.*;  
  118. importorg.apache.poi.xssf.usermodel.XSSFWorkbook;  
  119.   
  120. publicclassMain {  
  121.   
  122. /** 
  123. *@paramargs 
  124. */  
  125.   
  126. publicstaticvoidexcelTest() {  
  127. Workbook[]wbs = newWorkbook[] { newHSSFWorkbook() };  
  128. for(inti = 0; i < wbs.length;i++) {  
  129. Workbookwb = wbs[i];  
  130. CreationHelpercreateHelper = wb.getCreationHelper();  
  131.   
  132. //create a new sheet  
  133. Sheets = wb.createSheet();  
  134. //declare a row object reference  
  135. //Row r = null;  
  136.  declare a cell object reference  
  137. //Cell c = null;  
  138. //create 2 cell styles  
  139. CellStylecs = wb.createCellStyle();  
  140. CellStylecs2 = wb.createCellStyle();  
  141. DataFormatdf = wb.createDataFormat();  
  142.   
  143. //create 2 fonts objects  
  144. Fontf = wb.createFont();  
  145. Fontf2 = wb.createFont();  
  146.   
  147. //Set font 1 to 12 point type, blue and bold  
  148. f.setFontHeightInPoints((short)12);  
  149. f.setColor(IndexedColors.RED.getIndex());  
  150. f.setBoldweight(Font.BOLDWEIGHT_BOLD);  
  151.   
  152. //Set font 2 to 10 point type, red and bold  
  153. f2.setFontHeightInPoints((short)10);  
  154. f2.setColor(IndexedColors.RED.getIndex());  
  155. f2.setBoldweight(Font.BOLDWEIGHT_BOLD);  
  156.   
  157. //Set cell style and formatting  
  158. cs.setFont(f);  
  159. cs.setDataFormat(df.getFormat("#,##0.0"));  
  160.   
  161. //Set the other cell style and formatting  
  162. cs2.setBorderBottom(cs2.BORDER_THIN);  
  163. cs2.setDataFormat(df.getFormat("text"));  
  164. cs2.setFont(f2);  
  165.   
  166. //Define a few rows  
  167. for(intrownum = 0; rownum < 30; rownum++) {  
  168. Rowr = s.createRow(rownum);  
  169. for(intcellnum = 0; cellnum < 10; cellnum += 2) {  
  170. Cellc = r.createCell(cellnum);  
  171. Cellc2 = r.createCell(cellnum + 1);  
  172.   
  173. c.setCellValue((double)rownum + (cellnum / 10));  
  174. c2.setCellValue(createHelper.createRichTextString("Hello!"  
  175. +cellnum));  
  176. }  
  177. }  
  178.   
  179. //Save  
  180. Stringfilename = "workbook.xls";  
  181. if(wb instanceofXSSFWorkbook) {  
  182. filename= filename + "x";  
  183. }  
  184.   
  185. FileOutputStreamout;  
  186. try{  
  187. out= newFileOutputStream(filename);  
  188. wb.write(out);  
  189. out.close();  
  190. System.out.println("done.");  
  191. }catch(FileNotFoundException e) {  
  192. //TODOAuto-generated catch block  
  193. e.printStackTrace();  
  194. }catch(IOException e) {  
  195. //TODOAuto-generated catch block  
  196. e.printStackTrace();  
  197. }  
  198.   
  199. }  
  200. }  
  201.   
  202. publicstaticvoidreadExcel() {  
  203. FileworkbookFile = newFile("workbook.xls");  
  204.   
  205. try{  
  206. FileInputStreamfis = newFileInputStream(workbookFile);  
  207. Workbookworkbook = WorkbookFactory.create(fis);  
  208. fis.close();  
  209. intn = workbook.getNumberOfSheets();  
  210. for(inti = 0; i < n; i++) {  
  211. System.out.println(workbook.getSheetName(i));  
  212. Sheetsheet = workbook.getSheetAt(i);  
  213. Iterator<Row>rows = sheet.rowIterator();  
  214. CellStyle style = null;  
  215. while(rows.hasNext()) {  
  216. Rowrow = rows.next();  
  217. for(Cell cell : row) {  
  218. style= cell.getCellStyle();  
  219. CellFormatcf = CellFormat.getInstance(style.getDataFormatString());  
  220. CellFormatResultcellResult = cf.apply(cell);  
  221. System.out.print(""+cellResult.text);  
  222. }  
  223. System.out.println();  
  224. }  
  225. }  
  226. }catch(InvalidFormatException e) {  
  227. //TODOAuto-generated catch block  
  228. e.printStackTrace();  
  229. }catch(IOException e) {  
  230. //TODOAuto-generated catch block  
  231. e.printStackTrace();  
  232. }  
  233.   
  234. }  
  235.   
  236. publicstaticvoidmain(String[] args) {  
  237. //TODOAuto-generated method stub  
  238. //excelTest();  
  239. readExcel();  
  240. }  
  241.   
  242. }  

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值