⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 wordtools.java

📁 人力资源管理系统
💻 JAVA
字号:
package org.HumResManSys.util;

import java.io.FileInputStream;
import java.util.ArrayList;
import java.util.List;
import java.util.regex.Matcher;
import java.util.regex.Pattern;

import org.apache.poi.hwpf.HWPFDocument;

public class WordTools {
	
	private String docPath;
	private final String SEPARATORS="[ ;:;:]+";
	private final String SEPARATOR=":";
	private String docSource;
	private final int MAXROW=100;



	public String getDocSource() {
		return docSource;
	}

	public void setDocSource(String docSource) {
		this.docSource = docSource;
	}

	/**
	 * @param args
	 */
	
	public WordTools(String docPath){
		this.docPath=docPath;
		this.docSource=getString();
	}
	
	public String getString(){
		String outStr="";
		try { 
			FileInputStream in = new FileInputStream(getDocPath()); 
			HWPFDocument doc = new HWPFDocument(in); 
			outStr = doc.getRange().text(); 
			//StyleSheet styleSheet = doc.getStyleSheet();
			return outStr;
		} catch (Exception e) {
			e.printStackTrace(); 
			return null;
		}
		
	}
	
	public List<String[]> getInfo(List<String> conditions){

		List<String[]> returnValues=new ArrayList<String[]>();
		
		for(String s:conditions){
			returnValues.add(getMatchedStrings(s));
		}
		
		/*String []names=getMatchedStrings("姓名:[A-Za-z0-9\u4e00-\u9fa5]+[ ,;。,;.]+[A-Za-z0-9\u4e00-\u9fa5]+");*/
/*		String []names=getMatchedStrings("姓名:[ A-Za-z0-9\u4e00-\u9fa5]+");
		String []sexs=getMatchedStrings("性别:[ A-Za-z0-9\u4e00-\u9fa5]+");
		String []dates=getMatchedStrings("出生年月日:[ A-Za-z0-9\u4e00-\u9fa5]+");
		String []phones=getMatchedStrings("联系方式:[ ,;.,;。A-Za-z0-9\u4e00-\u9fa5]+");
		
		returnValues.add(names);
		returnValues.add(sexs);
		returnValues.add(dates);
		returnValues.add(phones);*/
		
		
		//getSingelSeparators("联系方式1:企业必须有人,而人是最难管理的,管好了企业就好了;管坏了,可以立即让你人去楼空。");
		
/*		for(int i=0;i<names.length;i++){
			if(names[i]!=null){
				System.out.println("姓名"+i+":"+names[i]);
				System.out.println("性别"+i+":"+sexs[i]);
				System.out.println("出生年月日"+i+":"+dates[i]);
				System.out.println("联系方式"+i+":"+phones[i]);
				System.out.println();
			}else{}

		}
		*/
		
/*		System.out.println("姓名:"+getOneCompiledString("姓名:[A-Za-z0-9\u4e00-\u9fa5]+[ ,;。,;.][A-Za-z0-9\u4e00-\u9fa5]+"));
        System.out.println("性别:"+getOneCompiledString("性别:[A-Za-z0-9\u4e00-\u9fa5]+"));
        System.out.println("出生年月日:"+getOneCompiledString("出生年月日:[A-Za-z0-9\u4e00-\u9fa5]+"));
        System.out.println("联系方式:"+getOneCompiledString("联系方式:[A-Za-z0-9\u4e00-\u9fa5]+"));*/
        
		return returnValues;
	}
	
	
	public String[] getMatchedStrings(String regEx){
		String []returnValues=new String[MAXROW];
		int i=0;
		if(!regEx.contains(SEPARATOR)){
			return null;
		}else{
			int pos=regEx.indexOf(SEPARATOR);
			Pattern p = Pattern.compile(regEx);
	        Matcher m = p.matcher(getDocSource());
	        while (m.find()) {
	            String s = m.group();
	            if(s!=null){
	            	returnValues[i++]=s.substring(pos+1, s.length());
	            }
	        }
		}

        return returnValues;
	}
	
	public String getFirstMatchedString(String regEx){
		if(!regEx.contains(SEPARATOR)){
			return null;
		}else{
			int pos=regEx.indexOf(SEPARATOR);
			Pattern p = Pattern.compile(regEx);
	        Matcher m = p.matcher(getDocSource());
	        while (m.find()) {
	            String s = m.group();
	            if(s!=null){
	            	return s.substring(pos+1, s.length());
	            }
	        }
		}

        return null;
	}
	
	public int getSingelSeparators(String groupedString){
		String []ix=new String[MAXROW];
		int returnValue=-1;
		for(int i=1;i<SEPARATORS.length()-2;i++){
			if(String.valueOf(SEPARATORS.charAt(i)).equalsIgnoreCase("[")||
			   String.valueOf(SEPARATORS.charAt(i)).equalsIgnoreCase("]")||
			   String.valueOf(SEPARATORS.charAt(i)).equalsIgnoreCase("+")){}else{
				   ix[i-1]=String.valueOf(SEPARATORS.charAt(i));
				   System.out.println("分隔符:"+ix[i-1]);
			   }
		}
		boolean flag=true;
		for(int j=0;j<groupedString.length();j++){
			for(int k=0;k<ix.length;k++){
				if(String.valueOf(groupedString.charAt(j)).equalsIgnoreCase(ix[k])){
					if(flag){//如果上一个是true,表示分隔符是连续的
						returnValue=groupedString.indexOf(groupedString.charAt(j));
					}
					flag=true;
				}else{
					flag=false;
				}
			}
		}
		System.out.println("returnValue:"+returnValue);
		return returnValue;
	}
	
	public String getDocPath() {
		return docPath;
	}

	public void setDocPath(String docPath) {
		this.docPath = docPath;
	}
	
	
	
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		WordTools w=new WordTools("D:\\test.doc");
		//w.getInfo();
		
	}

}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -