comment importer le fichier excel (XLSX) en mongoDB [fermé]
j'ai un jeu de données en entrée pour être donné à MongoDB en format XLSX. Comment puis-je importer le fichier Excel comme entrée dans MongoDB?
est-ce qu'il y a un plugin disponible pour importer des fichiers xlsx en entrée dans MongoDB?
7 réponses
vous ne pouvez pas importer un fichier XLSX directement dans MongoDB. Cependant, ce que vous pouvez faire avec une feuille de calcul Excel, c'est la sauvegarder dans un fichier CSV, puis utiliser mongoimport
pour l'importer en MongoDB. Vous pouvez trouver la documentation de mongoimport
ici, mais dans tous les cas, la commande que vous devez exécuter devrait ressembler à quelque chose comme ceci:
mongoimport --db myDb --collection myCollection --type csv --headerline --file /path/to/myfile.csv
Dans la commande ci-dessus, le --headerline
indicateur indique que la première ligne de votre fichier contient le nom des champs. Il y a beaucoup de d'autres options que vous pouvez utiliser selon vos besoins. Ces sont mis en évidence dans le documentation.
j'ai utilisé "fast-csv" pour télécharger csv sur la base de données mongoDB.
Exemple De Code:
var csv = require("fast-csv");
csv.fromPath('./test.csv',{headers: true})
.on("data", function(data){
var details = new Details;
details=data;
details.save(function (saveErr, savedetail) {
if (saveErr) {
console.log(saveErr)
}
});
})
.on("end", function(){
console.log("done");
})
il y a un paquet pymongo extention utilities, un des modules il fait exactement cela, importe un fichier excel à une collection mongo ou un classeur excel complet à une base de données mongo.
Vous pouvez trouver de la documentation et des exemples ici:
et vous pouvez installer la bibliothèque avec ' pip install mongouls
- vous devrez aussi installer la bibliothèque xldr
- avertissement: je suis l'auteur de cette bibliothèque
Vous pouvez télécharger les données de plusieurs feuilles à partir d'un excel dans mongodb à la fois à l'aide de ce code.
Votre première rangée I. la ligne " 0 " sera considérée comme le titre de la colonne et les données de repos de cette colonne.
MongoClient mongoClient = new MongoClient( "localhost" , 27017 );
DB db = mongoClient.getDB("yourdb_name");
System.out.println("Connected to Database successfully");
DBCollection coll = db.getCollection("your_collection name");
System.out.println("Collection your_collection name selected successfully");
DBCollection OR = db.getCollection("Input_Container");
System.out.println("Collection Device_Details selected successfully");
OR.drop();
DBObject arg1 = null;
//coll.update(query, update);
DBCollection OR_UPLOAD =
db.createCollection("Input_Container", arg1);
String path =" your file path";
File myFile = new File(path);
FileInputStream inputStream = new FileInputStream(myFile);
XSSFWorkbook workbook = new XSSFWorkbook(inputStream);
int number=workbook.getNumberOfSheets();
System.out.println("NumberOfSheets "+number);
for(int i=0;i<number;i++)
{
XSSFSheet sheet = workbook.getSheetAt(i);
int col_value=sheet.getRow(0).getLastCellNum();
int row_num= sheet.getLastRowNum();
System.out.println("row_num "+row_num);
List<String> DBheader = new ArrayList<String>();
List<String> Data = new ArrayList<String>();
for(int z=1;z<=row_num;z++){
DBheader.clear();
Data.clear();
for(int j=0;j<col_value;j++)
{
if(sheet.getRow(0).getCell(j).toString()!=null || sheet.getRow(0)!=null)
{
String cel_value = sheet.getRow(0).getCell(j).toString();
DBheader.add(cel_value.trim());
}
else{
break;
}
}
for(int k=0;k<col_value;k++){
String data =" ";
if(sheet.getRow(z).getCell(k)!=null)
{
data = sheet.getRow(z).getCell(k).toString();
}
Data.add(data.trim());
}
BasicDBObject doc = new BasicDBObject();
System.out.println("Data.size() "+Data.size());
int l=0;
for(String headers:DBheader)
{
if(l>Data.size()){break;}
doc.append(headers, Data.get(l));
l++;
}
OR_UPLOAD.insert(doc);
}
}System.out.println("File Upload Done");
mongoClient.close();
dans le cas où le serveur DB n'est pas local, vous devrez spécifier l'hôte, le port, le nom d'utilisateur, le mot de passe ainsi que le nom de la base de données, le nom de la collection.
mongoimport --host <hostname>:<port> --username <username> --password <password> --db <db name> --collection <collection name> --type csv --headerline --file /path/to/myfile.csv
mongoimport-d admin-c Mongocsv --type csv --file Mongocsv.csv -- headerline
connectés: 127.0.0.1 importé 5 objets
mongo
utiliser admin passé à db admin
db.Mongocsv.trouver()
vous pouvez gérer le chargement du contenu du fichier Excel en écrivant du code Java en utilisant la bibliothèque Apache POI (https://poi.apache.org/). La Bibliothèque est développée pour travailler avec les données D'application MS office y compris Excel.
j'ai récemment créé l'application basée sur la technologie qui vous aidera à charger des fichiers Excel dans la base de données MongoDB.
l'application est disponible sous http://www.abespalov.com/