Làm cách nào để nhập dữ liệu từ Excel sang MongoDB?

Bạn có thể xử lý việc tải nội dung tệp Excel bằng cách viết mã Java bằng thư viện Apache POI (https. //poi. apache. tổ chức/). Thư viện được phát triển để làm việc với dữ liệu ứng dụng MS office bao gồm Excel

Gần đây tôi đã tạo ứng dụng dựa trên công nghệ sẽ giúp bạn tải các tệp Excel vào cơ sở dữ liệu MongoDB

Ứng dụng này có sẵn dưới http. //www. abespalov. com/ và chỉ được thử nghiệm cho Windows, nhưng cũng sẽ hoạt động với Linux. Ứng dụng sẽ tự động tạo bộ sưu tập cần thiết và điền vào bộ sưu tập nội dung tệp Excel. Bạn có thể xuất nhiều tệp song song. Bạn có thể bỏ qua bước chuyển đổi tệp sang định dạng CSV. Ứng dụng xử lý các định dạng xls và xlsx

Các giai đoạn ứng dụng tổng thể là

1) Tải nội dung tệp excel. Đây là mã tùy thuộc vào phần mở rộng tập tin

fileExtension = FilenameUtils.getExtension(inputSheetFile.getName());

if (fileExtension.equalsIgnoreCase("xlsx")) {
        workbook = createWorkbook(openOPCPackage(inputSheetFile));
} else {
        workbook = createWorkbook(openNPOIFSFileSystemPackage(inputSheetFile));
}

sheet = workbook.getSheetAt(0);

2) Thiết lập kết nối MongoDB. Tôi sử dụng thư viện MongoClientURI;

MongoClientURI mongoClientURI = new MongoClientURI(
                    "mongodb://" + dbUser + ":" + dbPassword + "@" + dbServer 
+ ":" + dbPort + "/" + dbDatabase);
            excel2db.mongoClient = new MongoClient(mongoClientURI);

3) Lặp lại trang tính và chèn hàng vào bộ sưu tập. Đây là một đoạn mã Java

Row row = (Row) rowIterator.next();

    //get column names from a header
    short minColIdx = row.getFirstCellNum();
    short maxColIdx = row.getLastCellNum();

    ArrayList columnNameList = new ArrayList();
    String columnName;

    logger.info("The table {} is being populated", tableName);

    //populate a list of column names
    for (short colIdx = minColIdx; colIdx < maxColIdx; colIdx = (short) (colIdx + 1)) {
        columnNameList.add(row.getCell(colIdx) == null? "": row.getCell(colIdx).toString());
    }

    while (rowIterator.hasNext()) {

        Document document = new Document();
        Row rowData = (Row) rowIterator.next();

        numOfProcessedRows++;
        for (short colIdx = minColIdx; colIdx < maxColIdx; colIdx = (short) (colIdx + 1)) {
            document.put(columnNameList.get(colIdx), rowData.getCell(colIdx).toString());
        }

        //save the document into a collection, point to the database
        MongoCollection mongoCollection = mongoDB.getCollection(tableName);
        mongoCollection.insertOne(document);

    }
}    

Tại đây, bạn có thể tìm thấy tất cả mã Java cho ứng dụng được tạo để xuất excel sang Postgres (https. //github. com/palych-piter/Excel2DB)

MongoDB là một cơ sở dữ liệu định hướng tài liệu NoSQL mã nguồn mở, lưu trữ dữ liệu ở định dạng JSON. Nó là một cơ sở dữ liệu phân tán được thiết kế để lưu trữ một lượng lớn dữ liệu

Trong bài viết này, chúng ta sẽ xem xét cách dữ liệu excel có thể được nhập vào cơ sở dữ liệu MongoDB và được lưu trữ dưới dạng tài liệu trong bộ sưu tập được chỉ định. Việc triển khai MongoDB được thực hiện với Node. js + Express. js và nó sẽ đọc dữ liệu từ bảng excel và nhập thẳng vào cơ sở dữ liệu của bạn

Thiết lập dự án

Tạo một dự án từ thiết bị đầu cuối

mkdir my-app
cd my-app
npm init

Cài đặt mô-đun npm

npm install express csvtojson mongoose multer ejs

đa năng. Multer là một nút. js để xử lý dữ liệu nhiều phần/biểu mẫu, chủ yếu được sử dụng để tải tệp lên

csvtojson. Mô-đun này được sử dụng để chuyển đổi tệp CSV thành tệp JSON

Tạo nút. ứng dụng js express

Tạo một tệp có tên ứng dụng. js và nhập các mô-đun

const express = require('express')
const mongoose = require('mongoose')
const multer = require('multer')
const Student = require('./studentSchema')
const csvtojson = require('csvtojson')

const app = express()

mongoose.connect('mongodb://localhost:27017/MongoExcelDemo').then(() => { // MongoDB connection
console.log('database connected')
});


app.use(express.static('public')) // static folder
app.set('view engine','ejs') // set the template engine

app.listen(3000, () => {
console.log('server started at port 3000')
})

Mô-đun sinh viên trong cơ sở dữ liệu

Ở đây, chúng ta sẽ tạo một mô-đun sinh viên bằng cách tạo một sinh viên. js để lưu trữ dữ liệu sinh viên trong bộ sưu tập có tên Sinh viên

const mongoose = require('mongoose')
const studentSchema = mongoose.schema({
name : {type : String, required : true},
email : {type: String, required : true},
standard : {type: String, required: true}
})

module.exports = mongoose.model('Student', studentSchema)

Tạo đánh dấu biểu mẫu để tải lên tệp excel trong chỉ mục. tập tin ejs

Ở đây, form sẽ lấy dữ liệu từ file excel, file này phải ở định dạng CSV

<HTML>
<body>
<form action="/uploadExcelFile" enctype="multipart/form-data" method="post">
<input type="file" name="uploadfile" accept='application/vnd.openxmlformats-
officedocument.spreadsheetml.sheet, application/vnd.ms-excel' >
<input type="submit" class="p-10 w-100" value="Upload Excel">
</form>
</body>
</html>

Tải tệp lên cơ sở dữ liệu

Multer khá phổ biến vì tính hiệu quả và cơ bản để xử lý các tệp trong một máy chủ tốc hành

Để ứng dụng cấp tốc chấp nhận tệp, chúng tôi sẽ sử dụng bộ lưu trữ Multer để xử lý tệp tải lên. Bộ nhớ này sẽ được sử dụng để truy cập tệp đã tải lên

Ứng dụng. js

________số 8_______

Đoạn mã trên sẽ tạo ổ đĩa để lưu trữ tệp trong thư mục chung của thư mục gốc. Bằng cách nhấp vào nút gửi, dữ liệu được tìm nạp từ mỗi hàng của tệp đã tải lên và sẽ được nhập vào bộ sưu tập sinh viên bằng cách sử dụng nhiều phương pháp chèn

Làm cách nào để nhập dữ liệu vào MongoDB?

Để nhập dữ liệu vào cơ sở dữ liệu MongoDB, bạn có thể sử dụng mongoimport để nhập dữ liệu bộ sưu tập cụ thể hoặc bạn có thể sử dụng mongorestore để nhập bản sao lưu cơ sở dữ liệu đầy đủ nhị phân (BSON). The exported database file must be stored locally on the same machine as your client.

Làm cách nào để nhập dữ liệu tệp CSV vào MongoDB?

Bạn có thể sử dụng lệnh mongoimport để nhập tệp CSV vào bộ sưu tập bằng tùy chọn dòng tiêu đề . Tùy chọn dòng tiêu đề thông báo cho lệnh mongoimport của dòng đầu tiên; .

Làm cách nào để nhập tệp Excel trong MongoDB bằng Node js?

Nhập tệp Excel vào MongoDB bằng Node js + Express .
Bước 1 – Tạo ứng dụng Node Express js
Bước 2 – Cài đặt các mô-đun nút cần thiết
Bước 3 – Tạo mô hình
Bước 4 – Tạo biểu mẫu đánh dấu HTML tải lên tệp Excel
Bước 5 – Nhập mô-đun trong ứng dụng. js
Bước 6 – Khởi động máy chủ ứng dụng

Làm cách nào để chuyển đổi tệp Excel thành JSON?

Excel sang JSON sử dụng trình chỉnh sửa mã VBA . Tạo mã cho nó và thực thi mã; .