怎样在Android中解析doc、docx、xls、xlsx格式文件?
2012-02-16 17:58
495 查看
可以直接复制实验,
解析doc,要tm-extractors-0.4.jar这个包
解析xls,要jxl.jar这个包
解析xls
解析docx
解析xlsx
转自:http://www.eoeandroid.com/qa/2011/1227/504.html
解析doc,要tm-extractors-0.4.jar这个包
解析xls,要jxl.jar这个包
public static String readDOC(String path) { // 创建输入流读取doc文件 FileInputStream in; String text = null; // Environment.getExternalStorageDirectory().getAbsolutePath()+ "/aa.doc") try { in = new FileInputStream(new File(path)); int a= in.available(); WordExtractor extractor = null; // 创建WordExtractor extractor = new WordExtractor(); // 对doc文件进行提取 text = extractor.extractText(in); System.out.println("解析得到的东西"+text); } catch (FileNotFoundException e) { e.printStackTrace(); } catch (Exception e) { e.printStackTrace(); } if (text == null) { text = "解析文件出现问题"; } return text; }
解析xls
public static String readXLS(String path) { String str = ""; try { Workbook workbook = null; workbook = Workbook.getWorkbook(new File(path)); Sheet sheet = workbook.getSheet(0); Cell cell = null; int columnCount = sheet.getColumns(); int rowCount = sheet.getRows(); for (int i = 0; i < rowCount; i++) { for (int j = 0; j < columnCount; j++) { cell = sheet.getCell(j, i); String temp2 = ""; if (cell.getType() == CellType.NUMBER) { temp2 = ((NumberCell) cell).getValue() + ""; } else if (cell.getType() == CellType.DATE) { temp2 = "" + ((DateCell) cell).getDate(); } else { temp2 = "" + cell.getContents(); } str = str + " " + temp2; } str += "\n"; } workbook.close(); } catch (Exception e) { } if (str == null) { str = "解析文件出现问题"; } return str; }
解析docx
public static String readDOCX(String path) { String river = ""; try { ZipFile xlsxFile = new ZipFile(new File(path)); ZipEntry sharedStringXML = xlsxFile.getEntry("word/document.xml"); InputStream inputStream = xlsxFile.getInputStream(sharedStringXML); XmlPullParser xmlParser = Xml.newPullParser(); xmlParser.setInput(inputStream, "utf-8"); int evtType = xmlParser.getEventType(); while (evtType != XmlPullParser.END_DOCUMENT) { switch (evtType) { case XmlPullParser.START_TAG: String tag = xmlParser.getName(); System.out.println(tag); if (tag.equalsIgnoreCase("t")) { river += xmlParser.nextText() + "\n"; } break; case XmlPullParser.END_TAG: break; default: break; } evtType = xmlParser.next(); } } catch (ZipException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } catch (XmlPullParserException e) { e.printStackTrace(); } if (river == null) { river = "解析文件出现问题"; } return river; }
解析xlsx
public static String readXLSX(String path) { String str = ""; String v = null; boolean flat = false; List<String> ls = new ArrayList<String>(); try { ZipFile xlsxFile = new ZipFile(new File(path)); ZipEntry sharedStringXML = xlsxFile .getEntry("xl/sharedStrings.xml"); InputStream inputStream = xlsxFile.getInputStream(sharedStringXML); XmlPullParser xmlParser = Xml.newPullParser(); xmlParser.setInput(inputStream, "utf-8"); int evtType = xmlParser.getEventType(); while (evtType != XmlPullParser.END_DOCUMENT) { switch (evtType) { case XmlPullParser.START_TAG: String tag = xmlParser.getName(); if (tag.equalsIgnoreCase("t")) { ls.add(xmlParser.nextText()); } break; case XmlPullParser.END_TAG: break; default: break; } evtType = xmlParser.next(); } ZipEntry sheetXML = xlsxFile.getEntry("xl/worksheets/sheet1.xml"); InputStream inputStreamsheet = xlsxFile.getInputStream(sheetXML); XmlPullParser xmlParsersheet = Xml.newPullParser(); xmlParsersheet.setInput(inputStreamsheet, "utf-8"); int evtTypesheet = xmlParsersheet.getEventType(); while (evtTypesheet != XmlPullParser.END_DOCUMENT) { switch (evtTypesheet) { case XmlPullParser.START_TAG: String tag = xmlParsersheet.getName(); if (tag.equalsIgnoreCase("row")) { } else if (tag.equalsIgnoreCase("c")) { String t = xmlParsersheet.getAttributeValue(null, "t"); if (t != null) { flat = true; System.out.println(flat + "有"); } else { System.out.println(flat + "没有"); flat = false; } } else if (tag.equalsIgnoreCase("v")) { v = xmlParsersheet.nextText(); if (v != null) { if (flat) { str += ls.get(Integer.parseInt(v)) + " "; } else { str += v + " "; } } } break; case XmlPullParser.END_TAG: if (xmlParsersheet.getName().equalsIgnoreCase("row") && v != null) { str += "\n"; } break; } evtTypesheet = xmlParsersheet.next(); } System.out.println(str); } catch (ZipException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } catch (XmlPullParserException e) { e.printStackTrace(); } if (str == null) { str = "解析文件出现问题"; } return str; }
转自:http://www.eoeandroid.com/qa/2011/1227/504.html
相关文章推荐
- 怎样在Android中解析doc、docx、xls、xlsx格式文件
- 怎样在Android中解析doc、docx、xls、xlsx格式文件?
- 怎样在Android中解析doc、docx、xls、xlsx格式文件?
- 在Android中解析doc,docx,xls,xlsx,pptx等格式文件
- android中解析doc、docx、xls、xlsx格式文件
- Android中解析doc、docx、xls、xlsx格式文件
- 在Android中解析doc,docx,xls,xlsx,pptx等格式文件
- Android打开 解析 doc,docx,xls,xlsx,ppt等格式文件的源码
- 【Android】Android阅读各种格式文件(包括DOC/DOCX/WPS/XLS/XLSX/PPT/PPTX/TXT/PDF)
- Android中pdf,doc,docx,xls,xlsx,ppt,pptx等office文件预览
- 怎样在Android中解析doc、docx、xls、xlsx格式文
- 使用POI将office(doc/docx/ppt/pptx/xls/xlsx)文件转html格式(附带源码)
- "doc", "docx", "xls", "xlsx", "ppt", "pptx",txt。等文件转化为pdf
- Android中解析doc、docx、xls、xlsx格式文件
- Java解析Excel文件(.xlsx和.xls格式均适用)
- POI:支持xls/xlsx文件格式按cell类型解析相关内容(exls 2003/2007 兼容)
- android解析doc,docx,xls,xlsx文件
- android 打开 ppt pptx doc docx xls xlsx pdf office 文档
- android webview 快速实现office文档在线预览展示(doc,docx,xls,xlsx,ppt,pptx)
- Android解析及生成Excel文件(JXL)(xls格式)