知识大全 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相关参考