JAVAの下でデータベースのwordファイルに対する読み取りとフィールドの抽出を実現する
JAVAの下でデータベースのwordファイルに対する読み取りとフィールドの抽出を実現する
EXcelでのデータ導入データベースを実現することはjavaやCの下では難しくありません.txtでのデータ導入を実現するのは難しくありませんが、最近、英語版の教育プラットフォームを構築し、各学院のカリキュラムやプロフィールなどが英語で、学校には20の学院があります.各学院には200科目以上あり、少ない科目も80種類あるが、彼はあいにくwordで、しかも、フォーマットが規範的ではない.これは私を心配して、私はまずPOIを考えて、そこでgoogleは少し、もとは本当に実現しやすくて、この後ろのコードは送ることができて、03版を実現することができて、07版を実現することができます.違いは主にjarパッケージの問題です.03はjarパッケージが3つ、07はjarパッケージが7つ必要です.
そして、重要な問題は、wordのフィールドからどのようにファイルをつかむかが鍵です.彼らが提供したwordファイルはexcelではなく、直接インポートできないので、私はやはり前のwordファイルを断固として理解しましょう.
Course Description of Biochemistry
Course Name: Biochemistry Nature of Course:Compulsory course
Course Code: B1700025 Total Credits: 5.0
Total Credit Hours:80 Lecture Hours:80
Experimental Hours: 0 Oriented Majors: Bioscience, Biotechnology
Prerequisite Courses:
Penner: Validator(s):
Briefing of Course Content:
Biochemistry is a science exploring the chemical compositions and chemical reactions during life activitiesof living organisms. It is an important compulsive fundamental course for undergraduates majoring in bioscience and biotechnology. The main content of this course includes 1. The structure, function and the relationship between the structure and function of biological macromolecule such as protein and nucleic acid; 2. The metabolisms and regulation of biological macromolecules including carbohydrate, lipid, protein, nucleic acid etc.; 3. The transfer and expression of genetic information.
いずれにしても今回の任務は面倒で、見たところ、各科目はとても専門的で、とても標準的で、しかし、異なる先生が作ったのは、いくつかの句読点はまだ乱れていて、あるのは英語の句読点で、あるのは中国語で、あるのは半角で、あるのは全角で、数据庫の中はすべて文字化けで、今まで変更していないで、全事務室は集団で出陣して、一人でいくつかの学院に分けて、一つ一つの記録を見て、一つ一つの記録を直して、葛藤ing....
www.cnblogs.com/ytliyang陽飼い_℡__皆さんに勉強します.
EXcelでのデータ導入データベースを実現することはjavaやCの下では難しくありません.txtでのデータ導入を実現するのは難しくありませんが、最近、英語版の教育プラットフォームを構築し、各学院のカリキュラムやプロフィールなどが英語で、学校には20の学院があります.各学院には200科目以上あり、少ない科目も80種類あるが、彼はあいにくwordで、しかも、フォーマットが規範的ではない.これは私を心配して、私はまずPOIを考えて、そこでgoogleは少し、もとは本当に実現しやすくて、この後ろのコードは送ることができて、03版を実現することができて、07版を実現することができます.違いは主にjarパッケージの問題です.03はjarパッケージが3つ、07はjarパッケージが7つ必要です.
* POI word 2003 word 2007 <br />
* @createDate 2009-07-25
* @author Carl He
*/
public class Test {
public static void main(String[] args) {
try {
////word 2003:
InputStream is = new FileInputStream(new File("files\\2003.doc"));
WordExtractor ex = new WordExtractor(is);//is WORD InputStream
String text2003 = ex.getText();
System.out.println(text2003);
//
//word 2007 ,
OPCPackage opcPackage = POIXMLDocument.openPackage("files\\2007.docx");
POIXMLTextExtractor extractor = new XWPFWordExtractor(opcPackage);
String text2007 = extractor.getText();
System.out.println(text2007);
} catch (Exception e) {
e.printStackTrace();
}
}
}
そして、重要な問題は、wordのフィールドからどのようにファイルをつかむかが鍵です.彼らが提供したwordファイルはexcelではなく、直接インポートできないので、私はやはり前のwordファイルを断固として理解しましょう.
Course Description of Biochemistry
Course Name: Biochemistry Nature of Course:Compulsory course
Course Code: B1700025 Total Credits: 5.0
Total Credit Hours:80 Lecture Hours:80
Experimental Hours: 0 Oriented Majors: Bioscience, Biotechnology
Prerequisite Courses:
Penner: Validator(s):
Briefing of Course Content:
Biochemistry is a science exploring the chemical compositions and chemical reactions during life activitiesof living organisms. It is an important compulsive fundamental course for undergraduates majoring in bioscience and biotechnology. The main content of this course includes 1. The structure, function and the relationship between the structure and function of biological macromolecule such as protein and nucleic acid; 2. The metabolisms and regulation of biological macromolecules including carbohydrate, lipid, protein, nucleic acid etc.; 3. The transfer and expression of genetic information.
import java.io.File;
import java.util.ArrayList;
public class Directory {
private ArrayList nameList = new ArrayList();
private static String dirName = "d:\\EclipseWorkSpace\\Test\\files";
public void getSubFile(String FileName) {
File parentF = new File(FileName);
if (!parentF.exists()) {
System.out.println(" ");
return;
}
if (parentF.isFile()) {
nameList.add(parentF.getAbsoluteFile());
return;
}
String[] subFiles = parentF.list();
for (int i = 0; i < subFiles.length; i++) {
getSubFile(dirName + "/" + subFiles[i]);
}
}
public ArrayList getNameList() {
return nameList;
}
public static void main(String[] args){
Directory d=new Directory();
d.getSubFile("d:\\EclipseWorkSpace\\Test\\files");
}
}
import java.io.File;
import java.io.FileInputStream;
import java.io.InputStream;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.Statement;
import org.apache.poi.hwpf.extractor.WordExtractor;
public class FileTool {
/**
*
* @throws Exception
*/
public static void listDirs()throws Exception{
File f=new File("d:\\EclipseWorkSpace\\Test\\files\\ ");
String[] dirs=f.list();
for(int i=0;i<dirs.length;i++){
// System.out.println(dirs[i]);
listFiles(getDeptID(dirs[i].trim()),dirs[i]);
}
}
public static void main(String[] args)throws Exception{
listDirs();
}
/**
*
* @throws Exception
*/
public static void listFiles(int deptID,String dirName)throws Exception{
File f=new File("d:\\EclipseWorkSpace\\Test\\files\\ \\"+dirName);
String[] files=f.list();
for(int i=0;i<files.length;i++){
//System.out.println("d:\\EclipseWorkSpace\\Test\\files\\ \\"+dirName+"\\"+files[i]);
//
String docName=files[i];
if(docName.length()>30)
docName=docName.substring(30, docName.length()-4);
//System.out.println(docName+" ");
// word
boolean res=insertCoursesIntoDB(deptID,docName,getDetailFromWord("d:\\EclipseWorkSpace\\Test\\files\\ \\"+dirName+"\\"+files[i]));
if(res){
File file=new File("d:\\EclipseWorkSpace\\Test\\files\\ \\"+dirName+"\\"+files[i]);
file.delete();}else{
System.out.println(" :"+"d:\\EclipseWorkSpace\\Test\\files\\ \\"+dirName+"\\"+files[i]);
System.out.println("---------------- -------------------");
}
}
}
//
public static boolean insertCoursesIntoDB(int deptID,String courseName,String courseDetail)throws Exception{
//
try{
//System.out.println(courseDetail);
//
courseDetail=courseDetail.replace(":", ":");
String courseCode=courseDetail.substring(courseDetail.indexOf("Course Code:"), courseDetail.indexOf("Total Credits:")).trim();
if(courseCode.length()>12)
courseCode=courseCode.substring(12, courseCode.length()).trim();
String nature=courseDetail.substring(courseDetail.indexOf("Nature of Course:"), courseDetail.indexOf("Course Code:")).trim();
if(nature.length()>17)
nature=nature.substring(17, nature.length()).trim();
String totalCredit=courseDetail.substring(courseDetail.indexOf("Total Credits:"), courseDetail.indexOf("Total Credit Hours :")).trim();
if(totalCredit.length()>14)
totalCredit=totalCredit.substring(14, totalCredit.length()).trim();
String totalCreditHours=courseDetail.substring(courseDetail.indexOf("Total Credit Hours :"), courseDetail.indexOf("Lecture Hours:")).trim();
if(totalCreditHours.length()>19)
totalCreditHours=totalCreditHours.substring(19, totalCreditHours.length()).trim();
String lectureHours=courseDetail.substring(courseDetail.indexOf("Lecture Hours:"), courseDetail.indexOf("Experiment Hours:")).trim();
if(lectureHours.length()>14)
lectureHours=lectureHours.substring(14, lectureHours.length()).trim();
String experimentalHours=courseDetail.substring(courseDetail.indexOf("Experiment Hours:"), courseDetail.indexOf("Oriented Majors:")).trim();
if(experimentalHours.length()>19)
experimentalHours=experimentalHours.substring(19, experimentalHours.length()).trim();
String orientedMajors=courseDetail.substring(courseDetail.indexOf("Oriented Majors:"), courseDetail.indexOf("Prerequisite Course:")).trim();
if(orientedMajors.length()>16)
orientedMajors=orientedMajors.substring(16, orientedMajors.length()).trim();
String prerequisiteCourse=courseDetail.substring(courseDetail.indexOf("Prerequisite Course:"), courseDetail.indexOf("Penner:")).trim();
if(prerequisiteCourse.length()>23)
prerequisiteCourse=prerequisiteCourse.substring(23, prerequisiteCourse.length()).trim();
String penner=courseDetail.substring(courseDetail.indexOf("Penner:"), courseDetail.indexOf("Validators :")).trim();
if(penner.length()>7)
penner=penner.substring(7, penner.length()).trim();
String validator=courseDetail.substring(courseDetail.indexOf("Validators :"), courseDetail.indexOf("Briefing of Course Content:")).trim();
if(validator.length()>13)
validator=validator.substring(13, validator.length()).trim();
String content=courseDetail.substring(courseDetail.indexOf("Briefing of Course Content:"), courseDetail.length()).trim();
if(content.length()>27)
content=content.substring(27, content.length()).trim();
//
// mysql
Connection conn = null;
Statement stmt = null;
ResultSet rs = null;
try {
conn = getConn();
stmt = conn.createStatement();
String sql="insert into course(deptId,name,courseCode,nature,totalCredits,totalCreditHours,lectureHours,experimentalHours,orientedMajors,prerequisiteCourse,penner,validator,content) values(" +
deptID+",'"+courseName+"','"+courseCode+"','"+nature+"','"+totalCredit+"','"+totalCreditHours+"','"+lectureHours+"','"+experimentalHours+"','"+orientedMajors+"','"+prerequisiteCourse+"','"+penner+"','"+validator+"','"+content+"')";
stmt.executeUpdate(sql);
} catch (Exception e) {
System.out.println(" "+e.getMessage());
return false;
} finally {
if (rs != null)
try {
rs.close();
} catch (Exception e) {
System.out.println(e.getMessage());
}
if (stmt != null)
try {
stmt.close();
} catch (Exception e) {
System.out.println(e.getMessage());
}
if (conn != null)
try {
conn.close();
} catch (Exception e) {
System.out.println(e.getMessage());
}
}
return true;
}catch(Exception e){
System.out.println(" :"+e.getMessage());
return false;
}
}
/**
* word
* @param fileName
* @return
* @throws Exception
*/
public static String getDetailFromWord(String fileName){
// word
String text="";
try{
InputStream is = new FileInputStream(new File(fileName));
WordExtractor ex = new WordExtractor(is);//is WORD InputStream
text = ex.getText();
}catch(Exception e){
System.out.println(" :"+fileName);
return null;
}
return text;
}
/**
* ID
*
* @param deptName
* @return
* @throws Exception
*/
public static int getDeptID(String deptName)throws Exception{
int deptID=0;
// mysql
Connection conn = null;
Statement stmt = null;
ResultSet rs = null;
try {
conn = getConn();
stmt = conn.createStatement();
rs=stmt.executeQuery("select id from dept where name='"+deptName+"'");
if(rs.next())
deptID=rs.getInt(1);
} catch (Exception e) {
System.out.println(e.getMessage());
} finally {
if (rs != null)
try {
rs.close();
} catch (Exception e) {
System.out.println(e.getMessage());
}
if (stmt != null)
try {
stmt.close();
} catch (Exception e) {
System.out.println(e.getMessage());
}
if (conn != null)
try {
conn.close();
} catch (Exception e) {
System.out.println(e.getMessage());
}
}
return deptID;
}
public static Connection getConn() throws Exception{
Class.forName("com.mysql.jdbc.Driver");
DriverManager.registerDriver(new com.mysql.jdbc.Driver());
String dbUrl = "jdbc:mysql://210.44.**.**:3306/qauenDB?useUnicode=true&CharacterEncoding=utf8";
String dbUser = "***";
String dbPassword = "******";
return java.sql.DriverManager.getConnection(dbUrl, dbUser,dbPassword);
}
}
いずれにしても今回の任務は面倒で、見たところ、各科目はとても専門的で、とても標準的で、しかし、異なる先生が作ったのは、いくつかの句読点はまだ乱れていて、あるのは英語の句読点で、あるのは中国語で、あるのは半角で、あるのは全角で、数据庫の中はすべて文字化けで、今まで変更していないで、全事務室は集団で出陣して、一人でいくつかの学院に分けて、一つ一つの記録を見て、一つ一つの記録を直して、葛藤ing....
www.cnblogs.com/ytliyang陽飼い_℡__皆さんに勉強します.