📄 wordtools.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 + -