分享

Android中解析doc、docx、xls、xlsx格式文件

 和帅书馆 2014-10-21
     有的时候我们在开发android中需要解析一些我们比较常用的格式,比如doc、docx、xls、xlsx,那么我们要是正常的话就解析不了。这时我们就要用tm-extractors-0.4.jar。
解析doc,要tm-extractors-0.4.jar这个包
解析xls,要jxl.jar这个包
Java代码  收藏代码
  1. public static String readDOC(String path) {  
  2.                 // 创建输入流读取doc文件  
  3.                 FileInputStream in;  
  4.                 String text = null;  
  5. //                Environment.getExternalStorageDirectory().getAbsolutePath()+ "/aa.doc")  
  6.                 try {  
  7.                         in = new FileInputStream(new File(path));  
  8.                         int a= in.available();  
  9.                         WordExtractor extractor = null;  
  10.                         // 创建WordExtractor  
  11.                         extractor = new WordExtractor();  
  12.                         // 对doc文件进行提取  
  13.                         text = extractor.extractText(in);  
  14.                         System.out.println("解析得到的东西"+text);  
  15.                 } catch (FileNotFoundException e) {  
  16.                         e.printStackTrace();  
  17.                 } catch (Exception e) {  
  18.                         e.printStackTrace();  
  19.                 }  
  20.                 if (text == null) {  
  21.                         text = "解析文件出现问题";  
  22.                 }  
  23.                 return text;  
  24.         }  


Java代码  收藏代码
  1. public static String readXLS(String path) {  
  2.                 String str = "";  
  3.                 try {  
  4.                         Workbook workbook = null;  
  5.                         workbook = Workbook.getWorkbook(new File(path));  
  6.                         Sheet sheet = workbook.getSheet(0);  
  7.                         Cell cell = null;  
  8.                         int columnCount = sheet.getColumns();  
  9.                         int rowCount = sheet.getRows();  
  10.                         for (int i = 0; i < rowCount; i++) {  
  11.                                 for (int j = 0; j < columnCount; j++) {  
  12.                                         cell = sheet.getCell(j, i);  
  13.                                         String temp2 = "";  
  14.                                         if (cell.getType() == CellType.NUMBER) {  
  15.                                                 temp2 = ((NumberCell) cell).getValue() + "";  
  16.                                         } else if (cell.getType() == CellType.DATE) {  
  17.                                                 temp2 = "" + ((DateCell) cell).getDate();  
  18.                                         } else {  
  19.                                                 temp2 = "" + cell.getContents();  
  20.                                         }  
  21.                                         str = str + "  " + temp2;  
  22.                                 }  
  23.                                 str += "\n";  
  24.                         }  
  25.                         workbook.close();  
  26.                 } catch (Exception e) {  
  27.                 }  
  28.                 if (str == null) {  
  29.                         str = "解析文件出现问题";  
  30.                 }  
  31.                 return str;  
  32.         }  


Java代码  收藏代码
  1. public static String readDOCX(String path) {  
  2.                 String river = "";  
  3.                 try {  
  4.                         ZipFile xlsxFile = new ZipFile(new File(path));  
  5.                         ZipEntry sharedStringXML = xlsxFile.getEntry("word/document.xml");  
  6.                         InputStream inputStream = xlsxFile.getInputStream(sharedStringXML);  
  7.                         XmlPullParser xmlParser = Xml.newPullParser();  
  8.                         xmlParser.setInput(inputStream, "utf-8");  
  9.                         int evtType = xmlParser.getEventType();  
  10.                         while (evtType != XmlPullParser.END_DOCUMENT) {  
  11.                                 switch (evtType) {  
  12.                                 case XmlPullParser.START_TAG:  
  13.                                         String tag = xmlParser.getName();  
  14.                                         System.out.println(tag);  
  15.                                         if (tag.equalsIgnoreCase("t")) {  
  16.                                                 river += xmlParser.nextText() + "\n";  
  17.                                         }  
  18.                                         break;  
  19.                                 case XmlPullParser.END_TAG:  
  20.                                         break;  
  21.                                 default:  
  22.                                         break;  
  23.                                 }  
  24.                                 evtType = xmlParser.next();  
  25.                         }  
  26.                 } catch (ZipException e) {  
  27.                         e.printStackTrace();  
  28.                 } catch (IOException e) {  
  29.                         e.printStackTrace();  
  30.                 } catch (XmlPullParserException e) {  
  31.                         e.printStackTrace();  
  32.                 }  
  33.                 if (river == null) {  
  34.                         river = "解析文件出现问题";  
  35.                 }  
  36.                 return river;  
  37.         }  


Java代码  收藏代码
  1. public static String readXLSX(String path) {  
  2.                 String str = "";  
  3.                 String v = null;  
  4.                 boolean flat = false;  
  5.                 List<String> ls = new ArrayList<String>();  
  6.                 try {  
  7.                         ZipFile xlsxFile = new ZipFile(new File(path));  
  8.                         ZipEntry sharedStringXML = xlsxFile  
  9.                                         .getEntry("xl/sharedStrings.xml");  
  10.                         InputStream inputStream = xlsxFile.getInputStream(sharedStringXML);  
  11.                         XmlPullParser xmlParser = Xml.newPullParser();  
  12.                         xmlParser.setInput(inputStream, "utf-8");  
  13.                         int evtType = xmlParser.getEventType();  
  14.                         while (evtType != XmlPullParser.END_DOCUMENT) {  
  15.                                 switch (evtType) {  
  16.                                 case XmlPullParser.START_TAG:  
  17.                                         String tag = xmlParser.getName();  
  18.                                         if (tag.equalsIgnoreCase("t")) {  
  19.                                                 ls.add(xmlParser.nextText());  
  20.                                         }  
  21.                                         break;  
  22.                                 case XmlPullParser.END_TAG:  
  23.                                         break;  
  24.                                 default:  
  25.                                         break;  
  26.                                 }  
  27.                                 evtType = xmlParser.next();  
  28.                         }  
  29.                         ZipEntry sheetXML = xlsxFile.getEntry("xl/worksheets/sheet1.xml");  
  30.                         InputStream inputStreamsheet = xlsxFile.getInputStream(sheetXML);  
  31.                         XmlPullParser xmlParsersheet = Xml.newPullParser();  
  32.                         xmlParsersheet.setInput(inputStreamsheet, "utf-8");  
  33.                         int evtTypesheet = xmlParsersheet.getEventType();  
  34.                         while (evtTypesheet != XmlPullParser.END_DOCUMENT) {  
  35.                                 switch (evtTypesheet) {  
  36.                                 case XmlPullParser.START_TAG:  
  37.                                         String tag = xmlParsersheet.getName();  
  38.                                         if (tag.equalsIgnoreCase("row")) {  
  39.                                         } else if (tag.equalsIgnoreCase("c")) {  
  40.                                                 String t = xmlParsersheet.getAttributeValue(null, "t");  
  41.                                                 if (t != null) {  
  42.                                                         flat = true;  
  43.                                                         System.out.println(flat + "有");  
  44.                                                 } else {  
  45.                                                         System.out.println(flat + "没有");  
  46.                                                         flat = false;  
  47.                                                 }  
  48.                                         } else if (tag.equalsIgnoreCase("v")) {  
  49.                                                 v = xmlParsersheet.nextText();  
  50.                                                 if (v != null) {  
  51.                                                         if (flat) {  
  52.                                                                 str += ls.get(Integer.parseInt(v)) + "  ";  
  53.                                                         } else {  
  54.                                                                 str += v + "  ";  
  55.                                                         }  
  56.                                                 }  
  57.                                         }  
  58.                                         break;  
  59.                                 case XmlPullParser.END_TAG:  
  60.                                         if (xmlParsersheet.getName().equalsIgnoreCase("row")  
  61.                                                         && v != null) {  
  62.                                                 str += "\n";  
  63.                                         }  
  64.                                         break;  
  65.                                 }  
  66.                                 evtTypesheet = xmlParsersheet.next();  
  67.                         }  
  68.                         System.out.println(str);  
  69.                 } catch (ZipException e) {  
  70.                         e.printStackTrace();  
  71.                 } catch (IOException e) {  
  72.                         e.printStackTrace();  
  73.                 } catch (XmlPullParserException e) {  
  74.                         e.printStackTrace();  
  75.                 }  
  76.                 if (str == null) {  
  77.                         str = "解析文件出现问题";  
  78.                 }  
  79.                 return str;  
  80.         }  

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多