知识大全 java对word、excel、pdf等操作综合文章

Posted

篇首语:宁可枝头抱香死,何曾吹落北风中。本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 java对word、excel、pdf等操作综合文章相关的知识,希望对你有一定的参考价值。

  Java操作PDF Java操作Word Excel Access参考:?forum= &thread= &tstart= &trange= Java Excel API 文档 一个jacob操作Word的例子 其他操作excel pdf的sample里都有  import java io File;  import *;  import jacob activeX *;  public class WordTest      public static void main(String[] args)      WordBean word=new WordBean();     word openWord(true);     word createNewDocument();     word insertText( Hello word );           import jacob activeX *;  import *;  public class WordBean extends java awt Panel     private ActiveXComponent MsWordApp = null;   private Dispatch document = null;   public WordBean()        super();      public void openWord(boolean makeVisible)     //Open Word if we ve not done it already     if (MsWordApp == null)            MsWordApp = new ActiveXComponent( Word Application );       //Set the visible property as required      Dispatch put(MsWordApp Visible             new Variant(makeVisible));      public void createNewDocument()     //Find the Documents collection object maintained by Word     Dispatch documents =         Dispatch get(MsWordApp Documents ) toDispatch();  //Call the Add method of the Documents collection to create  //a new document to edit     document = Dispatch call(documents Add ) toDispatch();      public void insertText(String textToInsert)     // Get the current selection within Word at the moment If  // a new document has just been created then this will be at  // the top of the new doc     Dispatch selection =         Dispatch get(MsWordApp Selection ) toDispatch();  //Put the specified text at the insertion point     Dispatch put(selection Text textToInsert);      public void saveFileAs(String filename)        Dispatch call(document SaveAs filename);      public void printFile()     //Just print the current document to the default printer     Dispatch call(document PrintOut );      public void closeDocument()     // Close the document without saving changes  // = wdDoNotSaveChanges  // = wdSaveChanges  // = wdPromptToSaveChanges     Dispatch call(document Close new Variant( ));     document = null;      public void closeWord()        Dispatch call(MsWordApp Quit );     MsWordApp = null;     document = null;      Java Excel 操作excel 从Excel文件读取数据表Java Excel API既可以从本地文件系统的一个文件( xls) 也可以从输入流中读取Excel数据表 读取Excel数据表的第一步是创建Workbook(术 语 工作薄) 下面的代码片段举例说明了应该如何操作 (完整代码见ExcelReading java)import java io *;import jxl *;… … … …try//构建Workbook对象 只读Workbook对象//直接从本地文件创建Workbook//从输入流创建Workbook    InputStream is = new FileInputStream(sourcefile);    jxl Workbook rwb = Workbook getWorkbook(is);catch (Exception e)e printStackTrace();

  一旦创建了Workbook 我们就可以通过它来访问Excel Sheet(术语 工作表) 参考下面的代码片段 //获取第一张Sheet表Sheet rs = rwb getSheet( );我们既可能通过Sheet的名称来访问它 也可以通过下标来访问它 如果通过下标来访问的话 要注意的一点是下标从 开始 就像数组一样 一旦得到了Sheet 我们就可以通过它来访问Excel Cell(术语 单元格) 参考下面的代码片段 //获取第一行 第一列的值Cell c = rs getCell( );String strc = c getContents();//获取第一行 第二列的值Cell c = rs getCell( );String strc = c getContents();//获取第二行 第二列的值Cell c = rs getCell( );String strc = c getContents();System out println( Cell( ) + value : + strc + ; type : + c getType());System out println( Cell( ) + value : + strc + ; type : + c getType());System out println( Cell( ) + value : + strc + ; type : + c getType());如果仅仅是取得Cell的值 我们可以方便地通过getContents()方法 它可以将任何类型的Cell值都作为一个字符串返回 示例代码中 Cell( )是文本型 Cell( )是数字型 Cell( )是日期型 通过getContents() 三种类型的返回值都是字符型 如果有需要知道Cell内容的确切类型 API也提供了一系列的方法 参考下面的代码片段 String strc = null;double strc = ;Date strc = null;Cell c = rs getCell( );Cell c = rs getCell( );Cell c = rs getCell( );if(c getType() == CellType LABEL)LabelCell labelc = (LabelCell)c ;strc = labelc getString();if(c getType() == CellType NUMBER)NmberCell numc = (NumberCell)c ;strc = numc getValue();if(c getType() == CellType DATE)DateCell datec = (DateCell)c ;strc = datec getDate();System out println( Cell( ) + value : + strc + ; type : + c getType());System out println( Cell( ) + value : + strc + ; type : + c getType());System out println( Cell( ) + value : + strc + ; type : + c getType());在得到Cell对象后 通过getType()方法可以获得该单元格的类型 然后与API提供的基本类型相匹配 强制转换成相应的类型 最后调用相应的取 值方法getXXX() 就可以得到确定类型的值 API提供了以下基本类型 与Excel的数据格式相对应 如下图所示 每种类型的具体意义 请参见Java Excel API Document 当你完成对Excel电子表格数据的处理后 一定要使用close()方法来关闭先前创建的对象 以释放读取数据表的过程中所占用的内存空间 在读取大量数据时显得尤为重要 参考如下代码片段 //操作完成时 关闭对象 释放占用的内存空间rwb close();Java Excel API提供了许多访问Excel数据表的方法 在这里我只简要地介绍几个常用的方法 其它的方法请参考附录中的Java Excel API Document Workbook类提供的方法 int getNumberOfSheets()获得工作薄(Workbook)中工作表(Sheet)的个数 示例 jxl Workbook rwb = jxl Workbook getWorkbook(new File(sourcefile));int sheets = rwb getNumberOfSheets(); Sheet[] getSheets()返回工作薄(Workbook)中工作表(Sheet)对象数组 示例 jxl Workbook rwb = jxl Workbook getWorkbook(new File(sourcefile));Sheet[] sheets = rwb getSheets(); String getVersion()返回正在使用的API的版本号 好像是没什么太大的作用 jxl Workbook rwb = jxl Workbook getWorkbook(new File(sourcefile));String apiVersion = rwb getVersion();Sheet接口提供的方法 ) String getName()获取Sheet的名称 示例 jxl Workbook rwb = jxl Workbook getWorkbook(new File(sourcefile));jxl Sheet rs = rwb getSheet( );String sheetName = rs getName(); ) int getColumns()获取Sheet表中所包含的总列数 示例 jxl Workbook rwb = jxl Workbook getWorkbook(new File(sourcefile));jxl Sheet rs = rwb getSheet( );int rsColumns = rs getColumns(); ) Cell[] getColumn(int column)获取某一列的所有单元格 返回的是单元格对象数组 示例 jxl Workbook rwb = jxl Workbook getWorkbook(new File(sourcefile));jxl Sheet rs = rwb getSheet( );Cell[] cell = rs getColumn( ); ) int getRows()获取Sheet表中所包含的总行数 示例 jxl Workbook rwb = jxl Workbook getWorkbook(new File(sourcefile));jxl Sheet rs = rwb getSheet( );int rsRows = rs getRows(); ) Cell[] getRow(int row)获取某一行的所有单元格 返回的是单元格对象数组 示例子 jxl Workbook rwb = jxl Workbook getWorkbook(new File(sourcefile));jxl Sheet rs = rwb getSheet( );Cell[] cell = rs getRow( ); ) Cell getCell(int column int row)获取指定单元格的对象引用 需要注意的是它的两个参数 第一个是列数 第二个是行数 这与通常的行 列组合有些不同 jxl Workbook rwb = jxl Workbook getWorkbook(new File(sourcefile));jxl Sheet rs = rwb getSheet( );Cell cell = rs getCell( );

cha138/Article/program/Java/hx/201311/25581

相关参考