`
z303729470
  • 浏览: 134091 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

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

 
阅读更多
有的时候我们在开发android中需要解析一些我们比较常用的格式,比如doc、docx、xls、xlsx,那么我们要是正常的话就解析不了。这时我们就要用tm-extractors-0.4.jar。
解析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;
        }


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;
        }


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;
        }


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;
        }
分享到:
评论

相关推荐

    Android解析并显示doc,docx,xls,xlsx文件

    在Android平台上,解析并显示Microsoft Office格式的文件(如doc, docx, xls, xlsx)是一项常见的需求,尤其在移动应用开发中。这个任务通常涉及到将这些文档转换为更易于处理的格式,例如HTML,以便在Android的...

    android 读word文档 doc docx xls xlsx

    在Android平台上,开发人员经常需要处理各种文档格式,如Word(doc、docx)、Excel(xls、xlsx)等。这些文件通常由Microsoft Office创建,但在移动设备上,我们可能需要在不依赖桌面软件的情况下查看或操作它们。这...

    android 操作office文档 doc docx xls xlsx ppt pptx pdf

    在Android平台上,处理Office文档(如doc、docx、xls、xlsx、ppt、pptx)以及PDF文件是一项常见的需求。Android本身并不直接支持这些文件格式的处理,因此开发者需要借助第三方库或者Google Drive等在线服务来实现。...

    office办公文档doc、docx、xls、xlsx、ppt、pptx在线预览java代码

    在IT行业中,尤其是在Web开发领域,常常需要处理各种类型的办公文档,例如Microsoft Office的doc、docx、xls、xlsx、ppt、pptx等格式。这些文件通常用于存储文本、表格、图表、幻灯片等内容,而在Web应用中,提供...

    android读取doc/docx/xls转换为html

    在Android平台上,将doc、docx...总的来说,将doc、docx和xls文件转换为HTML在Android中需要理解文件格式,熟悉相关库的使用,以及掌握Android平台的文件操作和多线程编程。通过不断学习和实践,可以顺利解决这类问题。

    JAVA用poi解析doc、docx、slx、xlsx,保证完整

    在Java编程环境中,Apache POI库是一个非常强大的工具,它允许开发者读取、写入和修改Microsoft Office格式的文件,包括Word(doc、docx)、Excel(xls、xlsx)以及老版本的Excel文件(slx)。这个教程将详细介绍...

    读取各类文件内容(doc,docx,ppt,pptx,xls,xlsx,pdf,txt等)

    在IT行业中,处理各种文件格式是一项常见的任务,特别是在数据处理、文档管理和自动化流程中。本篇文章将详细讲解如何使用Apache POI和PDFBox库来读取doc, docx, ppt, pptx, xls, xlsx, pdf以及txt等各类文件的内容...

    JAVA用poi解析doc、docx、slx、xlsx

    在Java编程环境中,Apache POI库是一个非常实用的工具,用于读取和写入Microsoft Office格式的文件,如Word(doc、docx)和Excel(xls、xlsx)。本篇文章将详细探讨如何使用Apache POI来解析这四种类型的文件,并...

    java 在线查看doc、docx、ppt、pptx、xls、xlsx、zip、rar、mp4、mp3

    使用spring boot打造文件文档在线预览项目解决方案,支持doc、docx、ppt、pptx、xls、xlsx、zip、rar、mp4、mp3以及众多类文本如txt、html、xml、java、properties、sql、js、md、json、conf、ini、vue、php、py、...

    Linux服务上实现在线预览PPT,PPTX,DOC,DOCX,XLS,XLSX文件安装插件详细步骤

    ### Linux服务上实现在线预览PPT/PPTX/DOC/DOCX/XLS/XLSX文件的安装插件详细步骤 #### 环境准备 本文档主要介绍如何在Linux服务器上实现各种常见文档(包括PPT、PPTX、DOC、DOCX、XLS、XLSX)的在线预览功能。此...

    使用POI将office(doc/docx/ppt/pptx/xls/xlsx)文件转html格式

    Apache POI 是一个开源项目,专门用于处理Microsoft Office格式的文件,如DOC、DOCX、PPT、PPTX、XLS和XLSX。它提供了Java API,使得开发者能够读取、创建、修改这些文件。在本场景中,我们将讨论如何使用POI将...

    android,poi不用服务器,android支持浏览doc,docx,xlsx,xls,ppt,pptx,可以解析图片

    在Android开发中,有时我们需要处理各种办公文档,如Word(doc、docx)、Excel(xlsx、xls)和PowerPoint(ppt、pptx)文件。在标题和描述中提到的,是利用Apache POI库实现一个Android应用,允许用户在本地设备上...

    读取txt、doc、docx、pptx、xls、xlsx,以及文件下载

    读取txt、doc、docx、pptx、xls、xlsx,以及文件下载 需要下载jxl和tm

    doc, xls, ppt, docx, xlsx, pptx文件格式分析工具(office2003和openxml)

    支持word2003的文件格式分析(doc, xls, ppt),也支持(docx, xlsx, pptx)文件格式分析,全图形化界面工具; 本人也在从事pdf, word2003, openxml文件格式相关开发

    .pdf/.doc/.docx/.xls/.xlsx/.ppt/.pptx 文件网页预览 ASP.NET MVC 项目

    在IT行业中,尤其是在Web开发领域,常常需要处理各种类型的文件,如PDF、Word文档(.doc/.docx)、Excel表格(.xls/.xlsx)以及PowerPoint演示文稿(.ppt/.pptx)。这些文件格式广泛应用于日常工作和学习,因此提供...

    基于poi实现word/excel转换为HTML(且兼容.doc.docx.xls.xlsx)

    Apache POI 是一个流行的开源库,专为处理Microsoft Office格式的文件,如Word(.doc/.docx)和Excel(.xls/.xlsx)。本教程将深入探讨如何使用Apache POI库来实现这些文件向HTML的转换,以实现跨平台和浏览器的兼容...

    Java解析pdf,zip,doc等格式文档

    其次,ZIP是一种常用的压缩文件格式,Java标准库JDK本身就提供了java.util.zip包,可以方便地进行ZIP文件的读写操作。例如,你可以使用ZipFile类打开ZIP文件,遍历其中的条目,然后用ZipEntry读取每个条目的内容。...

    office文件(含doc,docx,xls,xlsx,ppt,pptx等)转PDF生成(C#程序)

    本文将深入探讨如何使用C#编程语言来实现这个功能,涉及的文件类型包括doc、docx、xls、xlsx、ppt和pptx。 首先,我们需要理解Office文档与PDF之间的差异。Office文档(如Word、Excel、PowerPoint)是微软开发的...

    Spring boot 在线预览办公文件(doc、docx、xls等)

    其中一个常见的需求是在线预览各种办公文件,如文档(doc、docx)、电子表格(xls、xlsx)以及PDFs,而无需用户下载文件到本地。本文将详细介绍如何使用Spring Boot实现这一功能。 首先,我们需要引入相关的依赖库...

    java读取doc、docx、slx、xlsx等word和excel文件

    在Java编程环境中,处理各种类型的文档,如.doc、.docx、.xls和.xlsx文件,是常见的需求。这些文件格式分别对应于Microsoft Word的老式二进制格式(Word 97-2003)和基于OpenXML的新式格式(Word 2007及以后),以及...

Global site tag (gtag.js) - Google Analytics