`
diandidemeng
  • 浏览: 34639 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

poi读取文件,并获取相应属性

    博客分类:
  • java
阅读更多
格式比较乱,请到poi.apache.org下载最新的包,详细请参考POI帮助文档,特别是设置打印模式的页页边距,请先用模板设置好,然后现得到,用得到的页边距生成新的文件,另外读取的模板的列的宽度,实际生成后显示的效果不一致,有待改进.....另外还有一个是商业的导出到excelwww.jxcell.net/
java 代码
  1. package www.proudsoul.poi;  
  2.   
  3. import java.io.FileInputStream;  
  4.   
  5. import org.apache.poi.hssf.usermodel.HSSFCell;  
  6. import org.apache.poi.hssf.usermodel.HSSFCellStyle;  
  7. import org.apache.poi.hssf.usermodel.HSSFComment;  
  8. import org.apache.poi.hssf.usermodel.HSSFFooter;  
  9. import org.apache.poi.hssf.usermodel.HSSFPrintSetup;  
  10. import org.apache.poi.hssf.usermodel.HSSFRichTextString;  
  11. import org.apache.poi.hssf.usermodel.HSSFRow;  
  12. import org.apache.poi.hssf.usermodel.HSSFSheet;  
  13. import org.apache.poi.hssf.usermodel.HSSFWorkbook;  
  14. import org.apache.poi.poifs.filesystem.POIFSFileSystem;  
  15.   
  16. public class ReaderDemo {  
  17.   
  18.     /** 
  19.      * @param args 
  20.      */  
  21.     public static void main(String[] args) {  
  22.         try {  
  23.             // create a poi workbook from the excel spreadsheet file  
  24.             POIFSFileSystem fs = new POIFSFileSystem(new FileInputStream(  
  25.                     "demo.xls"));  
  26.             // POIFSFileSystem fs = new POIFSFileSystem(new FileInputStream(  
  27.             // "E:/JavaExcel/poi-3.0-rc4/src/testcases/org/apache/poi/hssf/data/12843-1.xls"));  
  28.             HSSFWorkbook wb = new HSSFWorkbook(fs);  
  29.             for (int k = 0; k < wb.getNumberOfSheets(); k++) {  
  30.                 HSSFSheet sheet = wb.getSheetAt(k);  
  31.                 System.out.println("列宽: "+sheet.getColumnWidth((short)0));  
  32.                 HSSFFooter footer = sheet.getFooter();  
  33.                 int rows = sheet.getPhysicalNumberOfRows();  
  34.                 if (rows > 0) {  
  35.                     System.out.println("总共: " + rows);  
  36.                     System.out.println("当前时间: " + HSSFFooter.date()  
  37.                             + " 当前文件名称: " + HSSFFooter.file() + " 页数: "  
  38.                             + HSSFFooter.numPages() + " 当前工作表名称: "  
  39.                             + HSSFFooter.tab());  
  40.                     sheet.getMargin(HSSFSheet.TopMargin);  
  41.                     HSSFPrintSetup hps = sheet.getPrintSetup();  
  42.                     /*System.out.println("得到打印模式: " + hps.getLandscape() 
  43.                             + " 页面大小: " + hps.getPaperSize() + " 头部空白: " 
  44.                             + sheet.getMargin(HSSFSheet.TopMargin) + " 左部空白: " 
  45.                             + sheet.getMargin(HSSFSheet.LeftMargin) + " 右部空白: " 
  46.                             + sheet.getMargin(HSSFSheet.RightMargin) 
  47.                             + " 底部空白: " 
  48.                             + sheet.getMargin(HSSFSheet.BottomMargin) 
  49.                                                                          * + " 
  50.                                                                          * PANE_LOWER_LEFT: " 
  51.                                                                          * +sheet.getMargin(HSSFSheet.PANE_LOWER_LEFT)+ " 
  52.                                                                          * PANE_LOWER_RIGHT: 
  53.                                                                          * "+sheet.getMargin(HSSFSheet.PANE_LOWER_RIGHT)+ " 
  54.                                                                          * PANE_UPPER_LEFT: " 
  55.                                                                          * +sheet.getMargin(HSSFSheet.PANE_UPPER_LEFT)+ " 
  56.                                                                          * PANE_UPPER_RIGHT: " 
  57.                                                                          * +sheet.getMargin(HSSFSheet.PANE_UPPER_RIGHT)+ " 
  58.                                                                          * 居中方式: 
  59.                                                                          * "+sheet.getHorizontallyCenter() 
  60.                                                                           
  61.                     );*/  
  62.   
  63.                     for (int r = 0; r < rows; r++) {  
  64.                         /* 得到一行的单元格内容 */  
  65.                         HSSFRow row = sheet.getRow(r);  
  66.                         if (row != null) {  
  67.                               
  68.                              System.out.println("当前行: "+row.getRowNum()+ " 高度:"+row.getHeight()+ " 宽度: "+row.getLastCellNum()+ "HeightInPoints: "+row.getHeightInPoints()+ "当前表格的大小: "+row.getPhysicalNumberOfCells()+ "FirstCellNum: "+row.getFirstCellNum()+ "ZeroHeight: "+row.getZeroHeight());  
  69.                                
  70.   
  71.                             /* 得到一行中每个单元格的内容 */  
  72.                             int cells = row.getPhysicalNumberOfCells();  
  73.                             for (short c = 0; c < cells; c++) {  
  74.                                 HSSFCell cell = row.getCell(c);  
  75.                                 HSSFCellStyle cellstyle = cell.getCellStyle();  
  76.                                 System.out.println(/*"Alignment: "+cellstyle.getAlignment()+ 
  77.                                         " BorderBottom: "+cellstyle.getBorderBottom()+ 
  78.                                         " Alignment: "+cellstyle.getBorderLeft() + 
  79.                                         " BorderRight "+cellstyle.getBorderRight()+  
  80.                                         " BorderTop "+cellstyle.getBorderTop() + 
  81.                                         " BottomBorderColor "+cellstyle.getBottomBorderColor() + 
  82.                                         " DataFormat "+cellstyle.getDataFormat() + 
  83.                                         " FillBackgroundColor "+cellstyle.getFillBackgroundColor() + 
  84.                                         " FillForegroundColor "+cellstyle.getFillForegroundColor() + 
  85.                                         " FillPattern "+cellstyle.getFillPattern() +*/  
  86.                                         " FontIndex "+cellstyle.getFontIndex() /*+ 
  87.                                         " Hidden "+cellstyle.getHidden() + 
  88.                                         " Indention "+cellstyle.getIndention() + 
  89.                                         " Index "+cellstyle.getIndex() + 
  90.                                         " LeftBorderColor "+cellstyle.getLeftBorderColor() + 
  91.                                         " Locked "+cellstyle.getLocked() + 
  92.                                         " RightBorderColor "+cellstyle.getRightBorderColor() + 
  93.                                         " Rotation "+cellstyle.getRotation() + 
  94.                                         " TopBorderColor "+cellstyle.getTopBorderColor() + 
  95.                                         " VerticalAlignment "+cellstyle.getVerticalAlignment() + 
  96.                                         " WrapText "+cellstyle.getWrapText()*/ );  
  97.                                 HSSFComment comment = cell.getCellComment();  
  98.                                 /*System.out.println("当前列: " 
  99.                                         + cell.getCellNum());*/  
  100.   
  101.                                 if (cell != null) {  
  102.                                     String value = null;  
  103.                                     switch (cell.getCellType()) {  
  104.                                     /* 
  105.                                      * case HSSFCell.CELL_TYPE_FORMULA: value = 
  106.                                      * "FORMULA "; break; 
  107.                                      */  
  108.                                     case HSSFCell.CELL_TYPE_NUMERIC:  
  109.                                         value = "   "  
  110.                                                 + cell.getNumericCellValue();  
  111.                                         break;  
  112.                                     /* 此行表示单元格的内容为string类型 */  
  113.                                     case HSSFCell.CELL_TYPE_STRING:  
  114.                                         value = "  "  
  115.                                                 + cell.getRichStringCellValue();  
  116.                                         System.out.print(value);  
  117.   
  118.                                         break;  
  119.                                     /* 此行表示该单元格值为空 */  
  120.                                     case HSSFCell.CELL_TYPE_BLANK:  
  121.                                         break;  
  122.                                     /* 
  123.                                      * case HSSFCell.CELL_TYPE_BOOLEAN: value = 
  124.                                      * "BOOLEAN=" + cell.getBooleanCellValue(); 
  125.                                      *  
  126.                                      * break; 
  127.                                      */  
  128.                                     /* 
  129.                                      * case HSSFCell.CELL_TYPE_ERROR: value = 
  130.                                      * "ERROR=" + cell.getErrorCellValue(); 
  131.                                      *  
  132.                                      * break; 
  133.                                      */  
  134.                                     default:  
  135.                                     }  
  136.                                 }  
  137.                             }  
  138.                             System.out.println();  
  139.                         }  
  140.                     }  
  141.                     System.out.println();  
  142.                 }  
  143.             }  
  144.         } catch (Exception e) {  
  145.             e.printStackTrace();  
  146.         }  
  147.     }  
  148. }  
分享到:
评论

相关推荐

    java Apache poi 对word doc文件进行读写操作

    写入 Word 文件涉及到创建新的 `HWPFDocument` 实例,添加 `Section`、`Paragraph` 和 `CharacterRun`,并设置相应的属性。一旦创建了所需的结构,你可以将 `HWPFDocument` 写入到一个文件中,使用 `write...

    poi读取合并单元格帮助类

    在探讨“poi读取合并单元格帮助类”的知识点时,我们首先需要理解Apache POI库在Java中的作用以及如何处理Excel文件中的合并单元格。Apache POI是一个开源的API,它允许程序创建、修改和显示Microsoft Office格式的...

    POI读取EXCEL教程

    HPSF(POI OLE 2 Property Set Facility)是POI的一部分,用于读取和写入OLE 2复合文档的属性,包括Excel文件的元数据。这可以帮助获取如作者、创建日期等信息。 七、文档摘要信息 文档摘要信息通常包含在文档的元...

    poi.zip java读取excel文件

    5. **处理数据**:根据需要,可以读取单元格的数值、字符串、日期等数据类型,并进行相应的业务处理。 6. **关闭资源**:读取完成后,记得关闭 `Workbook` 和相关的 `InputStream`,释放系统资源。 **高级功能** ...

    Poi解析Doc,Docx文件资源

    代码片段可能包含示例代码,展示如何使用Apache POI库打开、读取Word文件并展示其内容。开发者可以通过这些代码了解如何集成Apache POI到Android项目中,以及如何调用相应的API来处理Word文件。 总结来说,这个...

    ExcelUtil借助反射和POI对Excel读取,省略了以往读取Excel的繁琐步骤

    ExcelUtil的实现原理是遍历Excel的每一行,使用反射获取Bean类的字段,然后根据列头找到对应的单元格值,最后设置到Bean对象的相应属性上。这样,对于不同结构的Excel文件,只需要改变输入的Bean类,就能轻松读取...

    使用POI来处理Excel和Word文件格式

    对于读取Excel文件,POI提供了相应的API来打开Workbook,遍历Sheets,Rows和Cells,提取所需的数据。 处理Word文件则相对复杂一些,因为HWPF目前的功能比HSSF少。开发者可以创建Document对象,添加Paragraph和Run,...

    Java Poi流 根据Word模板插入相应的文本、表格和图片,生成新的Word报告

    Java POI库是Apache软件基金会开发的一个开源项目,专门用于读写Microsoft Office格式的文件,如Word(.doc和.docx)、Excel(.xls和.xlsx)等。在本主题中,我们将深入探讨如何使用Java POI流处理Word模板,插入...

    POI读取EXCEL教程.docx

    本教程主要聚焦于如何使用POI读取和写入Excel文件,特别是HSSF(Horrible SpreadSheet Format)部分,它针对的是Excel 97至2003的BIFF8文件格式。 一、Excel基础 Excel 97文件格式,也被称作BIFF8,是Microsoft ...

    JAVA用POI读取和创建2003和2007版本Excel完美示例

    在Java中,POI库提供了读取和写入Excel文件的强大功能,包括对2003(.xls)和2007及以上版本(.xlsx)的支持。下面我们将详细讲解如何使用POI进行Excel文件的读取和创建。 1. **安装POI库** 要使用POI,首先需要将...

    struts2+poi实现导出Excel文件

    在 Struts2 的配置文件 `struts.xml` 中,定义一个名为 "exportExcel" 的 action,指向这个 Action 类,并配置相应的结果。 3. **配置结果类型**:在 `struts.xml` 中,`result` 元素的 `type` 属性应设置为 ...

    Excel读写Excel, 3.8版本poi jar组合包

    在Java开发中,处理Excel数据是一项常见的任务,而Apache POI是一个强大的库,专门用于读取和写入Microsoft Office格式的文件,特别是Excel(.xls和.xlsx)文件。标题提到的"Excel读写Excel, 3.8版本poi jar组合包...

    poi excel转换成bean

    标题“poi excel转换成bean”涉及到的关键技术是使用Apache POI从Excel文件中读取数据并将其映射到Java Bean对象中。这个过程在处理大量结构化数据时特别有用,例如导入数据库或进行数据分析。 首先,我们需要理解...

    基于DOM4j和POI实现的XML文件转换为XLS(即标准EXCEL)的JAVA程序

    通过DOM4j,开发者可以方便地解析XML文档并获取其中的数据,包括元素、属性和文本内容。DOM4j支持SAX和DOM解析器,同时也提供了XPath查询支持,使得在XML文档中查找特定数据变得简单。 接下来,Apache POI是Apache...

    POI入门教程文档

    通过上述介绍,我们了解了如何使用POI的基本功能来读取、写入和操作Excel文件。对于更复杂的任务,如样式设置、图表生成等,POI也提供了相应的API支持。此外,对于大型文件的处理,通过使用不同的读取模式(如...

    poi-4.0.1.jar

    1. **Excel文件处理**:POI提供了HSSF(Horrible Spreadsheet Format)和XSSF(XML Spreadsheet Format)两个API,分别用于读写旧版的BIFF8格式(.xls)和XML格式(.xlsx)的Excel文件。通过这些API,你可以创建新的...

    poi Excle 导入导出

    "poi Excle 导入导出"这个主题主要涉及如何使用Apache POI库在Java中读取和写入Excel文件。以下是对这个主题的详细解释: 1. **Apache POI简介** Apache POI是一个强大的Java API,它允许开发人员创建、修改和显示...

    poi4.1.zip

    在Java环境中,Apache POI提供了一组强大的API,允许开发者读取、创建、更新和格式化这些文件。"poi4.1.zip"这个压缩包显然包含了Apache POI 4.1版本所需的全部库文件,方便开发者在项目中引用和使用。 1. **Excel...

    POI 官方API大全及基本操作实例(含jar包)

    在Java编程环境中,Apache POI库使得我们能够创建、读取和修改Excel文件(.xlsx和.xls格式)。这个API大全包含了所有必要的类和方法,涵盖了从简单的单元格读写到复杂的公式处理和样式设置等各个方面。 1. **单元格...

    POI 技术解疑

    1. 首先,创建一个表示用户信息的实体类 `User`,包含如代码、姓名、年龄、生日、金额、是否领导及性别等属性,并提供相应的 getter 和 setter 方法。 2. 创建一个枚举类 `Sex`,表示性别,包含 MALE 和 FEMALE 两...

Global site tag (gtag.js) - Google Analytics