Konvertieren Sie Excel mit Java in Blob, speichern Sie es, lesen Sie es aus der Datenbank und geben Sie es als Datei aus!

Beim Herunterladen einer Datei mit einer Web-App ... Das erste, was mir in den Sinn kommt, ist das Einrichten eines Dateiservers, aber diese Methode ist auch ... (Die Größe ist mir egal.)

** 1. Lesen Sie die Datei **

main


//Datei lesen
File uploadFile = new File("[Verzeichnis]\\tmp.xlsx");
FileInputStream finstream = new FileInputStream(uploadFile);

Sehr einfach.

** 2. In DB behalten **

main


Class.forName("oracle.jdbc.driver.OracleDriver");
//Stellen Sie eine Verbindung zu Oracle8i her
Connection conn = DriverManager.getConnection("jdbc:oracle:thin:@localhost:1521:TEST", "system", "password");
//Anweisung erstellen
Statement stmt = conn.createStatement();
//SQL-Definition
PreparedStatement pstmt = conn.prepareStatement("INSERT INTO [Schema].test_table(file_id, deta) VALUES(0, ?)");
//An Aussage binden
pstmt.setBinaryStream(1, finstream, (int) uploadFile.length());
//Lauf
int result = pstmt.executeUpdate();

Binär und mit setBinaryStream gesetzt.

** 3. Binärdaten aus DB extrahieren **

main


//Binäre Datenerfassung
ResultSet rset = stmt.executeQuery("select deta from [Schema].upload_file where file_id = '0'");
//Holen Sie sich Blob-Daten und geben Sie sie in eine Datei aus
Blob blob = null;
while (rset.next()) {
	blob = rset.getBlob("deta");
}
byte[] buffer = blob.getBytes(1, (int) blob.length());

Mit getBytes im Byte-Array speichern

** 4. In Datei spucken **

main


//Geben Sie die Ausgabedatei an
File file = new File("[Verzeichnis]\\test001_output.xlsx");
DataOutputStream dos = new DataOutputStream(new FileOutputStream(file));
//Byte-Array schreiben
dos.write(buffer);
dos.close();

Einfach eine Datei erstellen und schreiben.

** 5. Routinemäßiger Schließvorgang **

main


//Ergebnismenge schließen
rset.close();
//Anweisung schließen
stmt.close();
//Verbindung schließen
conn.close();

//TMP-Datei löschen
uploadFile.delete();

Verschiedene schließt. Und löschen Sie die hochgeladene temporäre Datei. Im angegebenen Verzeichnis wird eine Datei generiert.

** 6. Herausforderung: man_tone1: **

Das letzte Mal, als ich POI zum Generieren von Excel verwendet habe, Ich möchte es mit der Dateierzeugungsverarbeitung in eine Binärdatei konvertieren und es mit demselben Ablauf in der Datenbank behalten ... (Ich spucke es einmal als temporäre Datei aus, lese es erneut und mache es binär)

Ich kann keinen Moment daran denken, also lass es uns das nächste Mal versuchen!

Recommended Posts

Konvertieren Sie Excel mit Java in Blob, speichern Sie es, lesen Sie es aus der Datenbank und geben Sie es als Datei aus!
So zeichnen Sie JFR (Java Flight Recorder) auf und geben eine Dump-Datei aus
Ich möchte eine Datei mit Ruby im Internet herunterladen und lokal speichern (mit Vorsicht).
Lesen Sie eine Zeichenfolge in einer PDF-Datei mit Java
[Java] Konvertieren und Importieren von Dateiwerten mit OpenCSV
So komprimieren Sie eine JAVA-CSV-Datei und verwalten sie in einem Byte-Array
Konvertieren Sie Java Enum Enumeration und JSON von und nach Jackson
So springen Sie von Eclipse Java zu einer SQL-Datei
Ich habe versucht, CSV mit Outsystems zu lesen und auszugeben
[Spring] Lesen Sie mit MessageSource eine Nachricht aus einer YAML-Datei
Ich habe versucht, YouTube-Video von DB mit haml aufzurufen und es eingebettet anzuzeigen
Speichern von Dateien mit der angegebenen Erweiterung unter dem in Java angegebenen Verzeichnis in der Liste
So konvertieren Sie A in a und a in A mit logischem Produkt und Summe in Java
So konvertieren Sie eine Datei in ein Byte-Array in Java
21 Lesen Sie das Skript aus der Datei und führen Sie es aus
So laden Sie eine Bibliothek aus einer JAR-Datei mit VSCode << So verwenden Sie Maven / Gradle nicht >>
So fordern Sie mit jMeter eine CSV-Datei als JSON an
Ich möchte eine Liste mit Kotlin und Java erstellen!
Ich möchte eine Funktion mit Kotlin und Java erstellen!
Selbst in Java möchte ich true mit == 1 && a == 2 && a == 3 ausgeben
Stellen Sie mit Java eine Verbindung zur Datenbank her
Lesen Sie die Daten der Shizuoka Prefecture Point Cloud DB mit Java und versuchen Sie, die Baumhöhe zu ermitteln.
Thymeleaf konvertiert den Zeilenvorschubcode in ein HTML-Zeilenvorschub-Tag und gibt ihn aus.
Lesen Sie die ersten 4 Bytes der Java-Klassendatei und geben Sie CAFEBABE aus
So öffnen Sie eine Skriptdatei von Ubuntu mit VS-Code
[Java] So konvertieren Sie vom Typ String in den Pfadtyp und erhalten den Pfad
Einführung in Scala aus Java-Perspektive (grundlegend)
Lesen Sie Druck und Temperatur von Raspberry Pi 3 & BMP180 mit Java ab
Führen Sie eine Batchdatei von Java aus
Wenn Sie sshpass von Java mit Shell usw. aufrufen, scheint es notwendig zu sein, einen Pfad zu haben.
Protokollausgabe in Datei in Java
PDF und TIFF mit Java 8 ausgeben
Beispiel für eine EXCEL-Dateiaktualisierung mit JAVA
[Java] Geben Sie das Ergebnis von ffprobe -show_streams in JSON aus und ordnen Sie es einem Objekt in Jackson zu
[Java] Json von der URL mit der Standard-API (javax.script) abrufen und verarbeiten
Die Geschichte, zu vergessen, eine Datei in Java zu schließen und zu scheitern
Selbst in Java möchte ich true mit == 1 && a == 2 && a == 3 ausgeben (PowerMockito Edition)
[Java] Erstellen Sie mit dem Befehl jar eine JAR-Datei, die sowohl komprimiert als auch nicht komprimiert ist
Ich habe eine Lambda-Funktion in Java geschrieben und mit SAM bereitgestellt
So erstellen Sie eine App mit einem Plug-In-Mechanismus [C # und Java]
<Java> Quiz zum Batch-Konvertieren von Dateinamen, die durch eine bestimmte Zeichenfolge mit einem Teil des Dateinamens getrennt sind
Konvertieren Sie von der Java-UTC-Zeit in die JST-Zeit
[Java] Wie man Dateien ausgibt und schreibt!
Lesen Sie die xlsx-Datei in Java mit Selenium
Konvertieren Sie mit Ruby von JSON nach TSV und von TSV nach JSON
[Rails] Lesen der vom Bildschirm hochgeladenen XML-Datei im Hash-Typ
Java: Laden Sie die Datei herunter und speichern Sie sie an dem im Dialogfeld [Use HttpClient] ausgewählten Speicherort.
Sogar in Java möchte ich true mit == 1 && a == 2 && a == 3 ausgeben (Javassist zweite Abkochung)
Ich möchte in der Lage sein, Dateien mit refile mit administrate [rails6] zu lesen.
Von der Bewerbung bis zur Einführung von Oracle Java SE 11 Silver dauerte es einen Monat
Anmerkung: [Java] Verarbeiten Sie die gelesene CSV (extrahieren und ändern Sie sie gemäß den Bedingungen) und geben Sie sie aus
So konvertieren Sie einen Wert eines anderen Typs und weisen ihn einer anderen Variablen zu
Ich habe versucht, automatisch eine Klasse zu generieren, um sie mit APT von einer Datenklasse in ein Bundle zu konvertieren
So erstellen Sie ein Excel-Formular mithilfe einer Vorlagendatei mit Spring MVC
Selbst in Java möchte ich true mit == 1 && a == 2 && a == 3 (Black Magic) ausgeben.