java+操作doc文件_java操作excel,pdf,word等文件的方法

这个Java类提供了一系列方法,包括读取PDF、Word和Excel文件内容,以及替换文件内容。使用了如iTextPDF和Apache POI等库来实现文件操作。
摘要由CSDN通过智能技术生成

java 读取pdf、word、Excel文件

用到的jar:

itextpdf-5.5.8.jar   (PDF)

poi.jar

public class FileUtils {

/**

* 判断文件是否存在

*

* @Title: isExcite

* @param @param filePath

* @param @return

* @return boolean 返回类型

* @throws

*/

public static boolean isExcite(String filePath) {

File file = new File(filePath);

// 如果文件夹不存在则创建

if (!file.exists() && !file.isDirectory()) {

return false;

} else {

return true;

}

}

/**

*

* @Title: getPdfFileText

* @Description: 获取指定位置pdf的文件内容

* @param @param fileName

* @param @return

* @param @throws IOException

* @return String 返回类型

* @throws

*/

public static String getPdfFileText(String fileName) throws IOException {

PdfReader reader = new PdfReader(fileName);

PdfReaderContentParser parser = new PdfReaderContentParser(reader);

StringBuffer buff = new StringBuffer();

TextExtractionStrategy strategy;

for (int i = 1; i <= reader.getNumberOfPages(); i++) {

strategy = parser.processContent(i,

new SimpleTextExtractionStrategy());

buff.append(strategy.getResultantText());

}

return buff.toString();

}

/**

* 获取doc文档

*

* @Title: getTextFromWord

* @param @param filePath

* @param @return

* @return String 返回类型

* @throws

*/

public static String getTextFromWord(String filePath) {

String result = null;

File file = new File(filePath);

try {

FileInputStream fis = new FileInputStream(file);

WordExtractor wordExtractor = new WordExtractor(fis);

result = wordExtractor.getText();

} catch (FileNotFoundException e) {

e.printStackTrace();

} catch (IOException e) {

e.printStackTrace();

}

return result;

}

/**

* 读取excel内容

*

* @Title: getTextFromExcel

* @param @param filePath

* @param @return

* @return String 返回类型

* @throws

*/

public static String getTextFromExcel(String filePath) {

StringBuffer buff = new StringBuffer();

try {

// 创建对Excel工作簿文件的引用

HSSFWorkbook wb = new HSSFWorkbook(new FileInputStream(filePath));

// 创建对工作表的引用。

for (int numSheets = 0; numSheets < wb.getNumberOfSheets(); numSheets++) {

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

HSSFSheet aSheet = wb.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);// 获得列值

switch (aCell.getCellType()) {

case HSSFCell.CELL_TYPE_FORMULA:

break;

case HSSFCell.CELL_TYPE_NUMERIC:

buff

.append(

aCell

.getNumericCellValue())

.append('\t');

break;

case HSSFCell.CELL_TYPE_STRING:

buff.append(aCell.getStringCellValue())

.append('\t');

break;

}

}

}

buff.append('\n');

}

}

}

}

} catch (FileNotFoundException e) {

e.printStackTrace();

} catch (IOException e) {

e.printStackTrace();

}

return buff.toString();

}

/**

* 替换文件内容

* @Title: replaceContentToFile

* @param @param path  文件路径

* @param @param str   要替换的内容

* @param @param con   替换称的内容

* @return void 返回类型

* @throws

*/

public static void replaceContentToFile(String path, String str, String con) {

try {

if (isExcite(path)) {

FileReader read = new FileReader(path);

BufferedReader br = new BufferedReader(read);

StringBuilder content = new StringBuilder();

while (br.ready() != false) {

content.append(br.readLine());

content.append("\r\n");

}

int dex = content.indexOf(str);

if (dex != -1) {

System.out.println("找到标记!");

} else {

System.out.println("指定标记不存在!");

}

content.replace(dex, dex, con);

br.close();

read.close();

FileOutputStream fs = new FileOutputStream(path);

fs.write(content.toString().getBytes());

fs.close();

} else {

System.out.println("文件不存在!");

}

} catch (FileNotFoundException e) {

e.printStackTrace();

} catch (IOException e) {

e.printStackTrace();

}

}

}

留着以后直接拿过来用。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值