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?

17
demandé sur Devesh Khandelwal 2014-08-11 14:50:55

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 mongoimportici, 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.

39
répondu Juan Carlos Farah 2014-08-11 13:41:32

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");
    })
1
répondu SUNDARRAJAN K 2015-08-06 13:40:43

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
1
répondu nickmilon 2015-08-06 14:22:10

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();
1
répondu Sumeet Gawas 2017-07-26 05:15:47

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
0
répondu Gokul 2017-10-06 13:47:37

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()

0
répondu dinesh vishe 2017-11-19 17:09:09

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/