Skip to content

Instantly share code, notes, and snippets.

@saplaum
Created June 7, 2017 12:06
Show Gist options
  • Save saplaum/2d460f20a27fa577f0a60ef3c63e9721 to your computer and use it in GitHub Desktop.
Save saplaum/2d460f20a27fa577f0a60ef3c63e9721 to your computer and use it in GitHub Desktop.
import-contacts
import de.espirit.firstspirit.forms.FormData;
import de.espirit.firstspirit.access.UserService;
import de.espirit.firstspirit.access.store.Store;
import de.espirit.firstspirit.access.store.Store.Type;
import de.espirit.firstspirit.access.store.templatestore.Schema;
import java.io.File;
import java.io.BufferedReader;
import java.io.ByteArrayInputStream;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import javax.swing.JFileChooser;
import de.espirit.or.schema.Entity;
import de.espirit.or.Session;
final String SCHEMA_NAME = "Rittal_Web";
final String TABLE_NAME = "Contact";
//Auswahl der CSV Datei
JFileChooser fileChooser = new JFileChooser();
fileChooser.setMultiSelectionEnabled(false);
int selection = fileChooser.showOpenDialog(null);
if (selection == JFileChooser.APPROVE_OPTION) {
File file = fileChooser.getSelectedFile();
// Ermitteln der Session, um darüber Entities zu erzeugen
UserService uss = context.getUserService();
Schema schema = uss.getTemplateStore().getSchemes().getSchemaByName(SCHEMA_NAME );
Session session = schema.getSession();
String tableName = schema.getOrSchema().getEntityType(TABLE_NAME).getName();
// Auslesen der CSV Zeile pro Zeile
BufferedReader reader = null;
String line = "";
try {
reader = new BufferedReader(new InputStreamReader(new FileInputStream(file)));
while ((line = reader.readLine()) != null) {
// Datensatz erzeugen
Entity ent = session.createEntity(tableName);
String[] fields = line.split(";"); //Semikolon ggf. durch dein CSV-Trennzeichen ersetzen
// Datensatz befüllen
ent.setValue("city", fields[0]);
ent.setValue("name", fields[1]);
ent.setValue("jobTitle", fields[2]);
ent.setValue("address", fields[3]);
ent.setValue("telephone", fields[4]);
ent.setValue("mobile", fields[5]);
ent.setValue("name", fields[6]);
// TODO ent.setValue("position", fields[7]);
}
session.commit();
} catch (IOException e) {
//Fehler beim auslesen der Datei
} finally {
//Reader schließen
}
context.logInfo("Fertig");
} else {
context.logInfo("Keine Datei gewählt");
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment