📄 word2db.java
字号:
//package word2DB;
import jp.ne.so_net.ga2.no_ji.jcom.*;
import java.util.*;
import java.io.*;
public class Word2DB {
private ArrayList paramColsName=new ArrayList();
private ArrayList paramName=new ArrayList();
private String[] paramer_colsName=null;
private String[] paramer_value=null;
private String UnitID="",ReactorID="";
public void Word2DB(){
}
private void getParam(){
try
{
paramColsName.clear();
paramName.clear();
Database database=new Database("config.properties");
paramColsName.add("UnitID");
paramColsName.add("ReactorID");
paramColsName.add("ReactorIDinPlant");
String StrSql="select * from [DailyWord2DB] where UnitID='"+UnitID+"'";
HashResultSet rs=database.executeQuery(StrSql);
if(rs!=null){
while(rs.next()){
paramColsName.add(rs.getString("paramColName"));
paramName.add(rs.getString("paramName"));
}
}else{
System.out.println("HashResultSet为空");
}
database.close();
}
catch (Exception e)
{
System.out.println(e.toString());
}
Object[] paramer_col=(Object[])paramColsName.toArray();
paramer_colsName=new String[paramer_col.length];
for(int i=0;i<paramer_col.length;i++){
paramer_colsName[i]=paramer_col[i].toString();
//System.out.println(paramer_colsName[i]);
}
paramer_value=new String[paramer_col.length];
paramer_value[0]=UnitID;
paramer_value[1]=ReactorID;
paramer_value[2]="";
}
public boolean Word2DB(String fileName){
if(!getUnitID(fileName))
return false;
getParam();
Object[] paramer_name=(Object[])paramName.toArray();
int parameCount=0;
String data_name="";
ReleaseManager rm = new ReleaseManager();
try {
IDispatch wdApp = new IDispatch(rm, "Word.Application"); //
wdApp.put("Visible", new Boolean(false)); //
IDispatch wdDocuments = (IDispatch)wdApp.get("Documents");
Object[] arglist1 = new Object[1];
//String userdir = System.getProperty("user.dir"); //
//arglist1[0] = userdir+"\\Q2-04-2-029.doc";
arglist1[0]=fileName;
IDispatch wdDocument = (IDispatch)wdDocuments.method("Open", arglist1);
// 以段落为单位
IDispatch wdParagraphs = (IDispatch)wdDocument.get("Paragraphs");
int paragraph_count = ((Integer)wdParagraphs.get("Count")).intValue();
Object[] index = new Object[1];
for(int i=0; i<paragraph_count; i++) {
index[0] = new Integer(i+1); // COM
IDispatch wdParagraph = (IDispatch)wdParagraphs.method("Item", index);
IDispatch wdRange = (IDispatch)wdParagraph.get("Range");
data_name = (String)wdRange.get("Text");
if(data_name.indexOf(paramer_name[0].toString())>-1){
paramer_value[3]=data_name;
//System.out.println(data_name);
break;
}
}
if(paramer_value[3]!=null)
paramer_value[3]=date_Str2num(paramer_value[3]);
else{
wdApp.method("Quit", null);
System.out.println("解析Word过程中出错,不能解析报表日期.请修改CNNCDB中表DailyWord2DB前三条记录");
}
//解析运行参数
for(int parameIndex=1;parameIndex<paramer_name.length;parameIndex++){
for(int dataCount=1;dataCount<paragraph_count;dataCount++){
index[0] = new Integer(dataCount+1); // COM
IDispatch wdParagraph = (IDispatch)wdParagraphs.method("Item", index);
IDispatch wdRange = (IDispatch)wdParagraph.get("Range");
data_name = (String)wdRange.get("Text");
if(data_name.startsWith(paramer_name[parameIndex].toString())){
dataCount+=1;
index[0] = new Integer(dataCount+1); // COM
wdParagraph = (IDispatch)wdParagraphs.method("Item", index);
wdRange = (IDispatch)wdParagraph.get("Range");
data_name=(String)wdRange.get("Text");
paramer_value[parameIndex+3]=data_name.substring(0,data_name.length()-1);
//System.out.println(paramer_name[parameIndex].toString()+":"+paramer_value[parameIndex+3]);
break;
}
}
}
wdApp.method("Quit", null);
Database database=new Database("config.properties");
//查询数据库
String sqlStr=" select * from Daily where ";
for(int i=0;i<3;i++)
sqlStr=sqlStr+paramer_colsName[i]+"='"+paramer_value[i]+"' and ";
sqlStr=sqlStr+paramer_colsName[3]+"='"+paramer_value[3]+"'";
//System.out.println(sqlStr);
HashResultSet RST=database.executeQuery(sqlStr);
//插入数据库
String insertSqlStr="insert into Daily(";
if(!RST.next()){
for (int i=0;i<paramer_colsName.length;i++)
insertSqlStr=insertSqlStr+paramer_colsName[i]+",";
insertSqlStr=insertSqlStr.substring(0,insertSqlStr.length()-1)+") values('";
for(int i=0;i<paramer_value.length;i++)
insertSqlStr=insertSqlStr+paramer_value[i]+"','";
insertSqlStr=insertSqlStr.substring(0,insertSqlStr.length()-2)+")";
//System.out.println(sqlStr);
database.executeUpdate(insertSqlStr);
}
database.close();
}
catch(Exception e) {
wdApp.method("Quit", null);
e.printStackTrace(); }
finally { rm.release(); }
return true;
}
private String date_Str2num(String dateStr)
{
String dateBase="○一二三四五六七八九";
String date_num="",date="";
int date_index=-1;
for(int n=0;n<dateStr.length();n++)
{
date_num=dateStr.substring(n,n+1);
if(date_num.equals("十")&&date_index<0)
{
n++;
date_num=dateStr.substring(n,n+1);
if(dateBase.indexOf(date_num)>-1)
{
date_index=10+dateBase.indexOf(date_num);
date=date+String.valueOf(date_index);
}
else if(date_num.equals("年")||date_num.equals("月"))
date=date+"10-";
}
else
{
date_index=dateBase.indexOf(date_num);
if(date_index>-1)
date=date+String.valueOf(date_index);
else if(date_num.equals("年")||date_num.equals("月"))
date=date+"-";
}
}
// return(java.sql.Date.valueOf(date));
// System.out.println(date);
return(date);
}
private boolean getUnitID(String fileName)
{
int data_index=-1,UnitID_index=-1,ReactorID_index=-1;
data_index=fileName.indexOf("\\Q");
if(data_index<0){
System.out.println("文件名不规范,第一个字符必须是Q");
return false;
}
else{
UnitID_index=data_index+2;
ReactorID_index=UnitID_index+5;
UnitID=fileName.substring(UnitID_index,UnitID_index+1);
ReactorID=fileName.substring(ReactorID_index,ReactorID_index+1);
return true;
}
// System.out.println("UnitID:"+UnitID+"-----ReactorID:"+ReactorID);
}
public static void main(String args[]){
//String fileName_xml="D:\\jacob\\data\\Q3-04-1-001.doc";
Word2DB word2DB=new Word2DB();
//word2DB.xml2DB(fileName_xml,UnitID);
//word2DB.word2xml(fileName_xml);
word2DB.Word2DB(args[0]);
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -