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('	');
										break;
									case HSSFCell.CELL_TYPE_STRING:
										buff.append(aCell.getStringCellValue())
												.append('	');
										break;
									}
								}
							}
							buff.append('
');
						}
					}
				}
			}
		} 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("
");
				}
				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();

		}
	}
}

  留着以后直接拿过来用。

原文地址:https://www.cnblogs.com/wudi521/p/5302808.html