`
maomao1
  • 浏览: 1533 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

各种针对文档操作的代码示例

 
阅读更多
做之前,要下载pdfbox和poi插件,网上很多,很容找到,代码demo如下
import java.io.BufferedReader;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;
import java.io.InputStreamReader;
import org.apache.log4j.Logger;
import org.apache.poi.hssf.usermodel.HSSFWorkbook;
import org.apache.poi.hssf.usermodel.HSSFSheet;
import org.apache.poi.hssf.usermodel.HSSFRow;
import org.apache.poi.hssf.usermodel.HSSFCell;
import org.apache.poi.hslf.HSLFSlideShow;
import org.apache.poi.hslf.model.TextRun;
import org.apache.poi.hslf.model.Slide;
import org.apache.poi.hslf.usermodel.SlideShow;
import org.apache.poi.hwpf.HWPFDocument;
import org.apache.poi.hwpf.usermodel.Paragraph;
import org.apache.poi.hwpf.usermodel.Range;
import org.pdfbox.cos.COSDocument;
import org.pdfbox.pdfparser.PDFParser;
import org.pdfbox.pdmodel.PDDocument;
import org.pdfbox.util.PDFTextStripper;

/**
*  读取各种文件的类
*  作用:用于读取各种文件的内容
* @author sang
*
*/
public class ReadFile {
private static final Logger log=Logger.getLogger(ReadFile.class);
public static void main(String args[]){
String path="D:\\temp\\106-113.p3.pdf";
String content=readPdf(path);
System.out.println(content);
System.out.println("****************************************************************************************");
log.info(content);
}
/* @author sang
* 读 word方法
* input param path 是文件路径
* output param content 读取的文件内容
*/
public static String readWord(String path) {
StringBuffer content = new StringBuffer("");// 文档内容
try {

HWPFDocument doc = new HWPFDocument(new FileInputStream(path));
Range range = doc.getRange();
int paragraphCount = range.numParagraphs();// 段落
for (int i = 0; i < paragraphCount; i++) {// 遍历段落读取数据
Paragraph pp = range.getParagraph(i);
content.append(pp.text());
}

} catch (Exception e) {

}
return content.toString().trim();
}

/* @author sang
* 读 pdf方法
* input param path 是文件路径
* output param content 读取的文件内容
*/
public static String readPdf(String path) {
StringBuffer content = new StringBuffer("");// 文档内容

FileInputStream fis;
try {
fis = new FileInputStream(path);
PDFParser p = new PDFParser(fis);
p.parse();
PDFTextStripper ts = new PDFTextStripper();
//org.fontbox.cmap.CMapParser
content.append(ts.getText(p.getPDDocument()));
p.getPDDocument().close();
fis.close();

} catch (Exception e) {
System.out.println("读取pdf文件出现异常");
e.printStackTrace();
}

return content.toString().trim();
}

/*
* 读取PDF 方法2
*/
public static String readpaffile(String path) {
String docText = null;

PDFParser parser;
try {
parser = new PDFParser(new FileInputStream(new File(path)));
parser.parse();

COSDocument cosdoc = parser.getDocument();

PDFTextStripper stripper = new PDFTextStripper();

docText = stripper.getText(new PDDocument(cosdoc));

} catch (FileNotFoundException e) {

e.printStackTrace();
} catch (IOException e) {

e.printStackTrace();
}

return docText.trim();
}

/* @author sang
* 读html
* input param urlString 是文件路径
* output param contentString 读取的文件内容
*/

public static String readHtml(String urlString) {

StringBuffer content = new StringBuffer("");
File file = new File(urlString);
FileInputStream fis = null;
try {
fis = new FileInputStream(file);
// 读取页面
BufferedReader reader = new BufferedReader(new InputStreamReader(
fis, "GBK"));//这里的字符编码要注意,要对上html头文件的一致,否则会出乱码

String line = null;

while ((line = reader.readLine()) != null) {
content.append(line + "\n");
}
reader.close();
} catch (Exception e) {
System.out.println("读取html出现异常");
}
String contentString = content.toString();
return contentString;
}

/* @author sang
* 读txt
* input param path 是文件路径
* output param content 读取的文件内容
*/

public static String readTxt(String path) {
StringBuffer content = new StringBuffer("");// 文档内容
try {
FileReader reader = new FileReader(path);
BufferedReader br = new BufferedReader(reader);
String s1 = null;

while ((s1 = br.readLine()) != null) {
content.append(s1 + "\r");
}
br.close();
reader.close();
} catch (IOException e) {
System.out.println("读取txt出现异常");
}
return content.toString().trim();
}

/* @author sang
* 读ppt
* input param url 是文件路径
* output param content 读取的文件内容
*/

public static String ReadPPt(String url) throws Exception {
StringBuffer content = new StringBuffer("");
try {

SlideShow ss = new SlideShow(new HSLFSlideShow(new FileInputStream(
url)));//is 为文件的InputStream,建立SlideShow
Slide[] slides = ss.getSlides();//获得每一张幻灯片
for (int i = 0; i < slides.length; i++) {
TextRun[] t = slides[i].getTextRuns();//为了取得幻灯片的文字内容,建立TextRun
for (int j = 0; j < t.length; j++) {
content.append(t[j].getText());//这里会将文字内容加到content中去
}
content.append(slides[i].getTitle());
}

} catch (Exception ex) {
System.out.println("读取ppt异常:" + ex.toString());
}
return content.toString();
}

/* @author sang
* 读excel
* input param url 是文件路径
* output param content 读取的文件内容
*/
public static String ReadExcel(String url) throws Exception {
StringBuffer content = new StringBuffer();
try {
HSSFWorkbook workbook = new HSSFWorkbook(new FileInputStream(url));//创建对Excel工作簿文件的引用 
for (int numSheets = 0; numSheets < workbook.getNumberOfSheets(); numSheets++) {

if (null != workbook.getSheetAt(numSheets)) {

HSSFSheet aSheet = workbook.getSheetAt(numSheets);//获得一个sheet

for (int rowNumOfSheet = 0; rowNumOfSheet <= aSheet
.getLastRowNum(); rowNumOfSheet++) {
if (null != aSheet.getRow(rowNumOfSheet)) {
HSSFRow aRow = aSheet.getRow(rowNumOfSheet); //获得一个行
for (int cellNumOfRow = 0; cellNumOfRow <= aRow
.getLastCellNum(); cellNumOfRow++) {
if (null != aRow.getCell(cellNumOfRow)) {
HSSFCell aCell = aRow.getCell(cellNumOfRow);//获得列值

content.append(aCell.getStringCellValue());

}
}
}
}
}
}
} catch (Exception e) {
System.out.println(" 读取excel异常 :  " + e);
}
return content.toString();
}

}
分享到:
评论

相关推荐

    Java_欢迎来到AWS代码示例存储库此仓库包含AWS文档中使用的代码示例AWS SDK开发人员指南和更多有关更多信息.zip

    在本存储库中,"Java_欢迎来到AWS代码示例存储库此仓库包含AWS文档中使用的代码示例AWS SDK开发人员指南和更多有关更多信息.zip" 是一个针对Java开发者的重要资源,它提供了亚马逊网络服务(Amazon Web Services, ...

    数据库代码示例.rar

    综上所述,"数据库代码示例.rar"可能涵盖了一系列与数据库交互的实例,涉及了数据库的连接、查询、操作和优化等方面,这对于学习和理解数据库技术具有很高的价值。通过深入研究这些示例,开发者可以提升自己在数据...

    微信小程序各种示例代码

    在这个“微信小程序各种示例代码”压缩包中,包含了10个精心设计的小程序示例,对于初学者来说是极其宝贵的资源,可以帮助他们快速理解和掌握微信小程序的开发技巧。 首先,我们要了解微信小程序的基本结构。每个小...

    FFmpeg c代码示例

    在 MacOS x 10.7.5 上使用 Xcode 4.5 进行测试,意味着这些代码示例是为苹果操作系统编写的,并且可以在较旧版本的开发环境中运行。Xcode是Apple官方的集成开发环境(IDE),支持Objective-C和Swift等编程语言,同时...

    代码示例:源代码示例

    在这个"代码示例:源代码示例"的资源中,我们看到一个集合,涵盖了基础到进阶的编程概念,主要针对C++语言。这个压缩包可能包含了一系列的代码片段、项目文件和示例,帮助学习者理解C++的语法、结构以及解决问题的...

    精通C#2005代码示例

    《精通C#2005代码示例》是针对C# 2005编程语言的一个实践性资源,旨在帮助开发者深入理解并熟练运用C# 2005进行软件开发。C# 2005是.NET Framework 2.0的一部分,它引入了许多新特性,如匿名方法、迭代器、lambda...

    430F20XX代码示例

    "这里包括了差不多所有资源的示例代码"意味着这个压缩包可能包含从基本I/O操作到复杂外设驱动的多种代码示例,有助于开发者快速理解和使用这些单片机。同时,提到了"也可以去ti下载",暗示这些示例可能来自于TI官方...

    在线打印的代码示例

    代码示例中可能包含了将数据通过网络发送给打印机的代码部分,这部分代码应负责建立与打印机的连接,并将构建好的打印任务发送给打印机。发送过程中可能会使用到一些网络协议,例如TCP/IP协议。 5. 错误处理:在线...

    Qt入门代码示例.zip

    本压缩包包含了一系列针对初学者的Qt代码示例,这些示例旨在帮助有C++基础的学习者快速上手Qt开发。 1. **Qt基本概念** - **信号与槽(Signals & Slots)机制**:这是Qt的核心特性,用于对象间的通信。当一个对象...

    以下是一个简单的C语言文件读写操作的示例代码.pdf

    文件操作主要包括文件的打开、读取、写入和关闭等基本步骤。本文将通过一个具体的示例代码来详细介绍这些操作。 #### 二、文件操作概述 在C语言中,文件被视为一种特殊的流,通过标准库函数进行操作。文件流通常由...

    2440开发板 非操作系统示例代码

    EMA2440test这个文件可能包含了针对2440开发板的测试代码,用于验证上述功能。通过分析和运行这些示例代码,开发者可以深入理解S3C2440处理器的工作原理,并熟悉如何编写针对该硬件的程序。 总之,2440开发板的非...

    C#示例代码

    【C#示例代码】是针对Visual C# 2010编程语言的一份教学资源,主要用于大学教学。这份压缩包包含了一系列与C#相关的示例代码,旨在帮助学生和初学者更好地理解和掌握C#的基本概念、语法以及高级特性。通过实际编写和...

    VisualBasic语言入门教程&代码示例.zip

    《Visual Basic语言入门教程&代码示例》是一个针对初学者的综合学习资源,它涵盖了Visual Basic编程的基础知识和实际操作示例。Visual Basic是Microsoft公司推出的一种事件驱动的编程语言,广泛应用于软件开发,尤其...

    msp430fg439代码示例

    这个代码示例集提供了针对该芯片的多个功能模块的编程实例,如DMA(直接存储器访问)、UART(通用异步收发传输器)、LCD显示、ADC(模数转换器)以及时钟管理等。以下是对这些文件中涉及的知识点的详细解析: 1. **...

    jcifs-1.3.1附带示例.rar

    示例.txt文件可能包含如何使用jcifs库进行SMB操作的代码示例。通常,这些示例会展示如何初始化SmbFile对象来代表网络路径,然后使用这个对象进行读取、写入或者其他文件操作。例如,你可能会看到如何使用以下代码...

    下载 代码 示例 ( ZIP ) .zip_12864_zip

    标题中的“下载 代码 示例 ( ZIP ) .zip_12864_zip”表明这是一个包含编程代码示例的ZIP压缩文件,可能与教学或演示如何编写代码有关。12864可能是对某种屏幕分辨率或者内存大小的提及,因为12864是16x80字符的显示...

    MSP430系列单片机IAR代码示例

    标题“MSP430系列单片机IAR代码示例”表明这个压缩包包含了一些使用IAR Embedded Workbench为MSP430单片机编写的源代码实例。这些示例代码通常用于教育目的,帮助初学者理解如何在实际项目中应用MSP430的硬件资源和...

    Utility 基础类代码示例大全.rar

    "Utility基础类代码示例大全"是一个针对C#编程语言的实用工具类集合,它涵盖了多种常见的任务处理,如AD域操作、图表生成、命令行交互、CSV数据处理、数据库操作以及Excel文件的读写。以下将详细解析这些功能及其...

    OpenNETCF代码示例

    在"OpenNETCF代码示例"中,我们可以看到一系列用C#和VB编写的程序实例,这些示例旨在帮助开发者更好地理解和应用OpenNETCF库。下面,我们将详细探讨OpenNETCF库的关键知识点以及这些示例可能涵盖的内容: 1. **设备...

    完整版配置文件扩充操作模块示例.e.rar

    以上知识点是针对"完整版配置文件扩充操作模块示例.e.rar"的描述,这个压缩包可能包含一个完整的配置文件扩展示例,用于帮助开发者学习如何在实际项目中进行类似的配置管理。通过深入理解和实践这些知识点,可以提升...

Global site tag (gtag.js) - Google Analytics