Convertissez Excel en Blob avec java, enregistrez-le, lisez-le à partir de DB et exportez-le sous forme de fichier!

Lors du téléchargement d'un fichier avec une application Web ... La première chose qui vient à l'esprit est de mettre en place un serveur de fichiers, mais cette méthode est aussi ... (Je me fiche de la taille.)

** 1. Lisez le fichier **

main


//Lecture de fichiers
File uploadFile = new File("[annuaire]\\tmp.xlsx");
FileInputStream finstream = new FileInputStream(uploadFile);

Très simple.

** 2. Gardez dans DB **

main


Class.forName("oracle.jdbc.driver.OracleDriver");
//Connectez-vous à Oracle8i
Connection conn = DriverManager.getConnection("jdbc:oracle:thin:@localhost:1521:TEST", "system", "password");
//Créer une déclaration
Statement stmt = conn.createStatement();
//Définition SQL
PreparedStatement pstmt = conn.prepareStatement("INSERT INTO [Schéma].test_table(file_id, deta) VALUES(0, ?)");
//Lier à l'instruction
pstmt.setBinaryStream(1, finstream, (int) uploadFile.length());
//Courir
int result = pstmt.executeUpdate();

Binaire et défini avec setBinaryStream.

** 3. Extraire les données binaires de la base de données **

main


//Acquisition de données binaires
ResultSet rset = stmt.executeQuery("select deta from [Schéma].upload_file where file_id = '0'");
//Obtenir les données Blob et les exporter dans un fichier
Blob blob = null;
while (rset.next()) {
	blob = rset.getBlob("deta");
}
byte[] buffer = blob.getBytes(1, (int) blob.length());

Stocker dans un tableau d'octets avec getBytes

** 4. Cracher dans un fichier **

main


//Spécifiez le fichier de sortie
File file = new File("[annuaire]\\test001_output.xlsx");
DataOutputStream dos = new DataOutputStream(new FileOutputStream(file));
//écrire un tableau d'octets
dos.write(buffer);
dos.close();

Générez et écrivez simplement un fichier.

** 5. Processus de clôture de routine **

main


//Fermer l'ensemble de résultats
rset.close();
//Fermer la déclaration
stmt.close();
//Fermer la connexion
conn.close();

//Supprimer le fichier tmp
uploadFile.delete();

Divers ferme. Et supprimez le fichier temporaire téléchargé. Un fichier est généré dans le répertoire spécifié.

** 6. Défi: man_tone1: **

La dernière fois que j'ai utilisé POI pour générer Excel, Je veux le convertir en binaire avec le processus de génération de fichier et le conserver dans la base de données avec le même flux ... (Je l'ai craché en tant que fichier temporaire une fois, je l'ai lu à nouveau et je l'ai rendu binaire)

Je ne peux pas y penser un instant, alors essayons-le la prochaine fois!

Recommended Posts

Convertissez Excel en Blob avec java, enregistrez-le, lisez-le à partir de DB et exportez-le sous forme de fichier!
Comment enregistrer JFR (Java Flight Recorder) et générer un fichier de vidage
Je souhaite télécharger un fichier sur Internet en utilisant Ruby et l'enregistrer localement (avec prudence)
Lire une chaîne dans un fichier PDF avec Java
[Java] Convertir et importer des valeurs de fichier avec OpenCSV
Comment compresser un fichier JAVA CSV et le gérer dans un tableau d'octets
Convertir l'énumération Java et JSON vers et depuis Jackson
Comment passer d'Eclipse Java à un fichier SQL
J'ai essayé de lire et de sortir CSV avec Outsystems
[Spring] Lire un message à partir d'un fichier YAML avec MessageSource
J'ai essayé d'appeler une vidéo YouTube de DB avec haml et de l'afficher intégrée
Comment enregistrer des fichiers avec l'extension spécifiée sous le répertoire spécifié en Java dans la liste
Comment convertir A en A et A en A en utilisant le produit logique et la somme en Java
Comment convertir un fichier en tableau d'octets en Java
21 Lire et exécuter le script à partir du fichier
Comment charger une bibliothèque à partir d'un fichier JAR avec VSCode << Comment ne pas utiliser Maven / Gradle >>
Comment demander un fichier CSV au format JSON avec jMeter
Je veux faire une liste avec kotlin et java!
Je veux créer une fonction avec kotlin et java!
Même en Java, je veux afficher true avec un == 1 && a == 2 && a == 3
Connectez-vous à DB avec Java
Lisez les données de Shizuoka Prefecture Point Cloud DB avec Java et essayez de détecter la hauteur de l'arbre.
Convertissez le code de saut de ligne en une balise de saut de ligne html avec Thymeleaf et sortie
Lire les 4 premiers octets du fichier de classe Java et générer CAFEBABE
Comment ouvrir un fichier de script à partir d'Ubuntu avec du code VS
[Java] Comment convertir du type String en type Path et obtenir le chemin
Introduction à Scala du point de vue Java (basique)
Lire la pression et la température de Raspberry Pi 3 et BMP180 avec Java
Exécuter le fichier de commandes à partir de Java
Lors de l'appel de sshpass depuis Java avec shell etc., il semble qu'il soit nécessaire d'avoir un chemin.
Enregistrer la sortie dans un fichier en Java
Sortie PDF et TIFF avec Java 8
Exemple de mise à jour de fichier EXCEL avec JAVA
[Java] Affiche le résultat de ffprobe -show_streams dans JSON et mappe-le à un objet dans Jackson
[Java] Obtenir et gérer Json à partir d'une URL avec une API standard (javax.script)
L'histoire de l'oubli de fermer un fichier en Java et de l'échec
Même en Java, je veux afficher true avec un == 1 && a == 2 && a == 3 (édition PowerMockito)
[Java] Créez un fichier jar compressé et non compressé avec la commande jar
J'ai écrit une fonction Lambda en Java et l'ai déployée avec SAM
Comment créer une application avec un mécanisme de plug-in [C # et Java]
<Java> Quiz pour convertir par lots les noms de fichiers séparés par une chaîne de caractères spécifique avec une partie du nom de fichier
Convertir l'heure UTC Java en heure JST
[Java] Comment sortir et écrire des fichiers!
Lire le fichier xlsx en Java avec Selenium
Conversion de JSON en TSV et TSV en JSON avec Ruby
[Rails] Comment lire le fichier XML téléchargé depuis l'écran en type Hash
Java: Téléchargez le fichier et enregistrez-le à l'emplacement sélectionné dans la boîte de dialogue [Utiliser HttpClient]
Même en Java, je veux sortir true avec un == 1 && a == 2 && a == 3 (deuxième décoction Javassist)
Je souhaite pouvoir lire des fichiers en utilisant refile avec administrate [rails6]
Il a fallu un mois entre l'application et la prise de l'Oracle Java SE 11 Silver
Mémo: [Java] Traiter le csv lu (extraire et modifier selon les conditions) et sortir
Comment convertir une valeur d'un type différent et l'affecter à une autre variable
J'ai essayé de générer automatiquement une classe à convertir d'une classe de données en un bundle avec APT
Comment créer un formulaire Excel à l'aide d'un fichier modèle avec Spring MVC
Même en Java, je veux afficher true avec un == 1 && a == 2 && a == 3 (Black Magic)