Excel in MySQL importieren Problem

last_Zeratul

Mitglied
Ich habe in folgendem Quelltest ein Problem...
speziell in der EZBin
das einfügen der excel api hat auch nicht so recht funktioniert... 🙁

MySQLConnect.java
Java:
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;


public class MySQLConnect {
	
	private String url = "Server";
	private String user = "Benutzer";
	private String pass = "Passwort";
	
	private Connection conn = null;
	private Statement   stmt;
	
	public MySQLConnect(){
		try {
			Class.forName("com.mysql.jdbc.Driver").newInstance();
			conn = DriverManager.getConnection(url,user,pass);
			System.out.println("verbunden");
			conn.setAutoCommit(true); stmt = conn.createStatement();
		}
		catch (Exception e) {
			System.err.println("Kann nicht verbinden!");
		}
	}
	
	public int insertMySQL(String insert){
		
		try{
			int i = 815;
			stmt = conn.createStatement();
			i=stmt.executeUpdate(insert);
			stmt.close();
			return i;
		}
		catch (SQLException e){
			System.err.println(e);
		}
		return 0;
	}
	public void closeMySQL(){
		try {
			conn.close();
			System.out.println("Verbindung beendet."); 
		}
		catch (Exception e) {
			System.err.println("Kann nicht trennen!");
		}
	}
}


JournalEZB
Java:
public class JournalEZB {
	
	private  String ezbnr;
	private  String titel;
	private  String verlag;
	private  String fach;
	private  String e_issn;
	private  String p_issue;
	private  String zdb_nr;
	private  String link;
	private  String first_jear;
	private  String first_volume;
	private  String first_issue;
	private  String last_jear;
	private  String last_volume;
	private  String last_issue;
	private  String moving_wall;
	private  String verfuegbar;
	
	JournalEZB(){
		this.ezbnr=null;
		this.titel=null;
		this.verlag=null;
		this.fach=null;
		this.e_issn=null;
		this.p_issue=null;
		this.zdb_nr=null;
		this.link=null;
		this.first_jear=null;
		this.first_volume=null;
		this.first_issue=null;
		this.last_jear=null;
		this.last_volume=null;
		this.last_issue=null;
		this.moving_wall=null;
		this.verfuegbar=null;
	}

	public  String getEzbnr() {
		return ezbnr;
	}

	public  void setEzbnr(String ezbnr) {
		this.ezbnr = ezbnr;
	}

	public  String getTitel() {
		return titel;
	}

	public  void setTitel(String titel) {
		this.titel = titel;
	}

	public  String getVerlag() {
		return verlag;
	}

	public  void setVerlag(String verlag) {
		this.verlag = verlag;
	}

	public  String getFach() {
		return fach;
	}

	public  void setFach(String fach) {
		this.fach = fach;
	}

	public  String getE_issn() {
		return e_issn;
	}

	public  void setE_issn(String e_issn) {
		this.e_issn = e_issn;
	}

	public  String getP_issue() {
		return p_issue;
	}

	public  void setP_issue(String p_issue) {
		this.p_issue = p_issue;
	}

	public  String getZdb_nr() {
		return zdb_nr;
	}

	public  void setZdb_nr(String zdb_nr) {
		this.zdb_nr = zdb_nr;
	}

	public  String getLink() {
		return link;
	}

	public  void setLink(String link) {
		this.link = link;
	}

	public  String getFirst_jear() {
		return first_jear;
	}

	public  void setFirst_jear(String first_jear) {
		this.first_jear = first_jear;
	}

	public  String getFirst_volume() {
		return first_volume;
	}

	public  void setFirst_volume(String first_volume) {
		this.first_volume = first_volume;
	}

	public  String getFirst_issue() {
		return first_issue;
	}

	public  void setFirst_issue(String first_issue) {
		this.first_issue = first_issue;
	}

	public  String getLast_jear() {
		return last_jear;
	}

	public  void setLast_jear(String last_jear) {
		this.last_jear = last_jear;
	}

	public  String getLast_volume() {
		return last_volume;
	}

	public  void setLast_volume(String last_volume) {
		this.last_volume = last_volume;
	}

	public  String getLast_issue() {
		return last_issue;
	}

	public  void setLast_issue(String last_issue) {
		this.last_issue = last_issue;
	}

	public  String getMoving_wall() {
		return moving_wall;
	}

	public  void setMoving_wall(String moving_wall) {
		this.moving_wall = moving_wall;
	}

	public  String getVerfuegbar() {
		return verfuegbar;
	}

	public  void setVerfuegbar(String verfuegbar) {
		this.verfuegbar = verfuegbar;
	}	
}


EZBin
Java:
import java.io.BufferedReader;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.UnsupportedEncodingException;
import java.util.ArrayList;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
import jxl.*;


class EZBin 
{
	public static void main(String[] args){
		
		ArrayList<JournalEZB> journalList =new ArrayList<JournalEZB>();
		String datei = "Testdatei.xls";
		String zeile = null;
		String temp = null;
		String regex = "^\\d+$";
	    String search = null;
	    Pattern pattern = Pattern.compile(regex);
	    int t = 0;
	    int feldid =0;
	    int anzahlJournal=0;
	    
		try{
			// öffnen der Exceltabelle
			Workbook workbook = Workbook.getWorkbook(new File(datei));
			Sheet sheet = workbook.getSheet(0);
			
			//festlegen des y Startpunktes
			int a = 5;
			String ezbnumber = "beginn";
			journalList.add(new JournalEZB());
			
			while( ezbnumber != "" ){
				//Auslesen der Daten aus der Exceltabelle
				Cell ezbnr = sheet.getCell(a,0);
				Cell titel = sheet.getCell(a,1);
				Cell verlag = sheet.getCell(a,3);
				Cell fach = sheet.getCell(a,4);
				Cell e_issn = sheet.getCell(a,5);
				Cell p_issue = sheet.getCell(a,6);
				Cell zdb_nr = sheet.getCell(a,7);
				Cell link = sheet.getCell(a,12);
				Cell first_jear = sheet.getCell(a,14);
				Cell first_volume = sheet.getCell(a,15);
				Cell first_issue = sheet.getCell(a,16);
				Cell last_jear = sheet.getCell(a,17);
				Cell last_volume = sheet.getCell(a,18);
				Cell last_issue = sheet.getCell(a,19);
				Cell moving_wall = sheet.getCell(a,20);
				Cell verfuegbar = sheet.getCell(a,21);
		
				//setzen einer neuen Zeile
				a = a+1;
				ezbnumber = ezbnr.getContents();
				
				//Einfügen in die ArrayList
				journalList.get(a).setEzbnr(ezbnr.getContents());
				journalList.get(a).setTitel(titel.getContents());
				journalList.get(a).setVerlag(verlag.getContents());
				journalList.get(a).setFach(fach.getContents());
				journalList.get(a).setE_issn(e_issn.getContents());
				journalList.get(a).setP_issue(p_issue.getContents());
				journalList.get(a).setZdb_nr(zdb_nr.getContents());
				journalList.get(a).setFirst_jear(first_issue.getContents());
				journalList.get(a).setFirst_volume(first_volume.getContents());
				journalList.get(a).setFirst_issue(first_issue.getContents());
				journalList.get(a).setLast_jear(last_jear.getContents());
				journalList.get(a).setLast_volume(last_volume.getContents());
				journalList.get(a).setLast_issue(last_issue.getContents());
				journalList.get(a).setMoving_wall(moving_wall.getContents());
				journalList.get(a).setVerfuegbar(verfuegbar.getContents()); 
	
				journalList.add(new JournalEZB());
			}
			workbook.close();
		} 
		catch(IOException e) {
			e.printStackTrace();
		}
		
		MySQLConnect mysql = new MySQLConnect();
		int i =0;
		for(JournalEZB journal:journalList){
			String insert =null;
			insert = "insert ezb (";
			insert = insert+"`ezbnr`,";
			insert = insert+"`titel`,";
			insert = insert+"`verlag`,";
			insert = insert+"`fach`,";
			insert = insert+"`e_issn`,";
			insert = insert+"`p_issue`,";
			insert = insert+"`zdb_nr`,";
			insert = insert+"`link`,";
			insert = insert+"`first_jear`,";
			insert = insert+"`first_volume`,";
			insert = insert+"`first_issue`,";
			insert = insert+"`last_jear`,";
			insert = insert+"`last_volume`,";
			insert = insert+"`last_issue`,";
			insert = insert+"`moving_wall`,";
			insert = insert+"`verfuegbar`)";
			
			insert = insert+"Values ('";
			
			insert = insert + journal.getEzbnr()+"','";
			insert = insert + journal.getTitel()+"','";
			insert = insert + journal.getVerlag()+"','";
			insert = insert + journal.getFach()+"','";
			insert = insert + journal.getE_issn()+"','";
			insert = insert + journal.getP_issue()+"','";
			insert = insert + journal.getZdb_nr()+"','";
			insert = insert + journal.getLink()+"','";
			insert = insert + journal.getFirst_jear()+"','";
			insert = insert + journal.getFirst_volume()+"','";
			insert = insert + journal.getFirst_issue()+"','";
			insert = insert + journal.getLast_jear()+"','";
			insert = insert + journal.getLast_volume()+"','";
			insert = insert + journal.getLast_issue()+"','";
			insert = insert + journal.getMoving_wall()+"','";
			insert = insert + journal.getVerfuegbar();
			insert = insert + "')";
			
			i++;
			System.out.println(i);
			int temp1 =mysql.insertMySQL(insert);
			if (temp1!=1){
				System.out.println(insert);
				break;
			}
		}
		mysql.closeMySQL();
	}	
}

wie gesagt er das einfügen der excel api hatte nicht so recht funktioniert, deshalb hatte ich die benötigten dateien einfach ein einem unterordner der testdatei...

das war auch noch ein fehler der EZBin.java
EZBin.java:32: unreported exception jxl.read.biff.BiffException; must be caught
or declared to be thrown
Workbook workbook = Workbook.getWorkbook(new File("D:/EZ
BTest/EZBDaten2704.xls"));
^
1 error
 
hmm das hatte ich einmal versucht, aber weiß nicht ob an richtiger stelle...
soll der try,catchblock nur für diese stelle sein?:
Java:
            Workbook workbook = Workbook.getWorkbook(new File(datei));
            Sheet sheet = workbook.getSheet(0);

evtl hat er das mehr an fehlern auch nur geworfen wegen der api geschichte, weiß nicht genau >_<
ich hab viel zu wenig ahnung von java ...
 
das habe ich auch schon versucht, also etweder alle exceptions so zu catchen oder nur biff oder beide, immer der gleiche fehler


was mich noch sehr stört ist die tatsache das ich zu doof bin die excel api einzubinden...
ich habs auch schon mit beiden ordnern versucht also mit der rt.jar aus em jdt und aus dem jre ordner da ich mir nicht ganz sicher war...
es ist och so das ich diese per winrar oder so öffnen muss und da im java ordner den jxl ordner einfügen muss...
 
sooo Problem wirde im endeffekt mit hilfestellung gefixt, den fehlerfreien code will ich euch da mal nicht vorenthalten 🙂

Java:
package EZB;

import java.io.File;
import java.io.IOException;
import java.util.LinkedList;
import ZDB.MySQLConnect;
import jxl.*;
import jxl.read.biff.BiffException;


class EZBin 
{
	public static void main(String[] args){
		
		LinkedList<JournalEZB> journalList =new LinkedList<JournalEZB>();
		String datei = "datei.xls";
		int anzahlJournal=0;
	    
		try{
			// öffnen der Exceltabelle
			Workbook workbook = Workbook.getWorkbook(new File(datei));
			Sheet sheet = workbook.getSheet(1);
			int iRows = sheet.getRows();
			
			System.out.println(iRows);
			for(int i=0;i<iRows;i++){
				
				Cell ezbNr = sheet.getCell(0,i);
				Cell titel = sheet.getCell(1,i);
				Cell fach = sheet.getCell(4,i);
				Cell e_issn = sheet.getCell(5,i);
				Cell zdb_nr = sheet.getCell(7,i);
				Cell link = sheet.getCell(12,i);
				Cell first_jear = sheet.getCell(14,i);
				Cell first_volume = sheet.getCell(15,i);
				Cell first_issue = sheet.getCell(16,i);
				Cell last_jear = sheet.getCell(17,i);
				Cell last_volume = sheet.getCell(18,i);
				Cell last_issue = sheet.getCell(19,i);
				Cell moving_wall = sheet.getCell(20,i);
				Cell verfuegbar = sheet.getCell(21,i);
				
				try{
					int temp =Integer.parseInt(ezbNr.getContents());
					
					journalList.add(new JournalEZB());
					journalList.get(anzahlJournal).setEzbNr(ezbNr.getContents());
					journalList.get(anzahlJournal).setTitel(titel.getContents());
					journalList.get(anzahlJournal).setFach(fach.getContents());
					journalList.get(anzahlJournal).seteISSN(e_issn.getContents());
					journalList.get(anzahlJournal).setZdbNummer(zdb_nr.getContents());
					journalList.get(anzahlJournal).setLink(link.getContents());
					journalList.get(anzahlJournal).setErstesJahr(first_jear.getContents());
					journalList.get(anzahlJournal).setErstesVolume(first_volume.getContents());
					journalList.get(anzahlJournal).setErstesIssue(first_issue.getContents());
					journalList.get(anzahlJournal).setLetztesJahr(last_jear.getContents());
					journalList.get(anzahlJournal).setLetztesVolume(last_volume.getContents());
					journalList.get(anzahlJournal).setLetztesIssue(last_issue.getContents());
					journalList.get(anzahlJournal).setMovingWall(moving_wall.getContents());
					journalList.get(anzahlJournal).setVerfuegbar(verfuegbar.getContents());
					anzahlJournal++;
				}
				catch (Exception e){
				}
			}
			System.out.println(journalList.size());
			/*
			for (int i=0;i<10;i++){
				System.out.print(journalList.get(i).getTitel()+" ");
				System.out.print(journalList.get(i).getFach()+" ");
				System.out.print(journalList.get(i).geteISSN()+" ");
				System.out.print(journalList.get(i).getZdbNummer()+" ");
				System.out.print(journalList.get(i).getLink()+" ");
				System.out.print(journalList.get(i).getErstesJahr()+" ");
				System.out.print(journalList.get(i).getErstesVolume()+" ");
				System.out.print(journalList.get(i).getErstesIssue()+" ");
				System.out.print(journalList.get(i).getLetztesJahr()+" ");
				System.out.print(journalList.get(i).getLetztesVolume()+" ");
				System.out.print(journalList.get(i).getLetztesIssue()+" ");
				System.out.print(journalList.get(i).getMovingWall()+" ");
				System.out.println(journalList.get(i).getVerfuegbar());
			}*/
			workbook.close();
		} 
		catch(IOException e) {
			e.printStackTrace();
		} catch (BiffException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		
		MySQLConnect mysql = new MySQLConnect();
		int i =0;
		for(JournalEZB journal:journalList){
			String insert =null;
			insert = "insert ezb (";
			insert = insert+"`ezbNr`,";
			insert = insert+"`titel`,";
			insert = insert+"`fach`,";
			insert = insert+"`eISSN`,";
			insert = insert+"`zdbNummer`,";
			insert = insert+"`link`,";
			insert = insert+"`erstesJahr`,";
			insert = insert+"`erstesVolume`,";
			insert = insert+"`erstesIssue`,";
			insert = insert+"`letztesJahr`,";
			insert = insert+"`letztesVolume`,";
			insert = insert+"`letztesIssue`,";
			insert = insert+"`movingWall`,";
			insert = insert+"`verfuegbar`)";
			
			insert = insert+"Values (\"";
			
			insert = insert + journal.getEzbNr()+"\",\"";
			insert = insert + journal.getTitel()+"\",\"";
			insert = insert + journal.getFach()+"\",\"";
			insert = insert + journal.geteISSN()+"\",\"";
			insert = insert + journal.getZdbNummer()+"\",\"";
			insert = insert + journal.getLink()+"\",\"";
			insert = insert + journal.getErstesJahr()+"\",\"";
			insert = insert + journal.getErstesVolume()+"\",\"";
			insert = insert + journal.getErstesIssue()+"\",\"";
			insert = insert + journal.getLetztesJahr()+"\",\"";
			insert = insert + journal.getLetztesVolume()+"\",\"";
			insert = insert + journal.getLetztesIssue()+"\",\"";
			insert = insert + journal.getMovingWall()+"\",\"";
			insert = insert + journal.getVerfuegbar();
			insert = insert + "\")";
			
			i++;
			int temp1 =mysql.insertMySQL(insert);
			if (temp1!=1){
				System.out.println(insert);
				//break;
			}
			if(i%100==0){
				System.out.print("*");
			}
		}
		mysql.closeMySQL();
	}	
}


das problem war ua. das das einbinden der api nicht so recht wollte, in Eclipse ging es dann und kann somit mit dem jeweiligen projekt ja auch schön exportiert werden...
andere kleine fehler siehe quellcode...


Mit freundlichem Gruß last_Zeratul
 

Neue Themen


Zurück
Oben