Làm cách nào để xác thực trang tính Excel trước khi tải dữ liệu của nó lên cơ sở dữ liệu trong Java?



     CodeJava
          Mã hóa niềm đam mê của bạn

      
  • Trang chủ >
  • mã hóa

Khác. Hướng dẫn Java.

  • 10 lỗi thường gặp của lập trình viên Java

  • 10 phương pháp hay nhất về Java Core

  • 4 trang web Java bạn phải biết

  • Làm thế nào để trở thành một lập trình viên giỏi

  • Hướng dẫn Java Getter và Setter

  • Hướng dẫn Java Servlet và JSP Hello World

  • JSP Servlet JDBC MySQL CRUD Ví dụ

  • Tải tệp lên cơ sở dữ liệu với Servlet, JSP, MySQL

  • Tải tệp lên cơ sở dữ liệu với Spring và Hibernate

  • Tiêm phụ thuộc trong Java là gì

  • Biên dịch và chạy chương trình Java với TextPad

  • Biên dịch và chạy chương trình Java với Sublime Text

  • Ví dụ mã hóa và giải mã tệp Java

  • Tạo MD5 và SHA trong Java

  • Hướng dẫn Java Log4j cho người mới bắt đầu

  • Cách sử dụng log4j cho ứng dụng web Java

  • Cách phân tích cú pháp và định dạng Ngày trong Java

  • Cách đọc tệp Excel trong Java

  • Cách viết tệp Excel trong Java

  • Cách đọc file Excel được bảo vệ bằng mật khẩu trong Java

  • Cách cập nhật tệp Excel trong Java

  • Cách sử dụng Công thức Excel trong Java

  • Cách triển khai tính năng quên mật khẩu

  • Cách triển khai tính năng ghi nhớ mật khẩu

  • Cách đọc tệp CSV trong Java

  • Cách ghi tệp CSV trong Java

  • Tiện ích ghi âm Java

  • Cách ghi âm giọng nói với JavaSound

  • Cách phát tệp âm thanh trong Java

  • Ví dụ về trình phát âm thanh Java Swing

  • Tạo số ngẫu nhiên trong Java

  • Hiển thị hình ảnh từ cơ sở dữ liệu trong JSP

  • Dự án gửi email Java Swing

  • Tải xuống tệp Java Swing FTP

  • Tải lên tệp Java Swing FTP

  • Tải lên tệp Java Swing HTTP

  • Tải xuống tệp Java Swing HTTP



Ví dụ mã Java để nhập dữ liệu từ Excel vào cơ sở dữ liệu

Chi tiết Viết bởi Nam Hà MinhCập nhật lần cuối vào ngày 06 tháng 10 năm 2019. In  Email



Nhập dữ liệu từ Excel vào cơ sở dữ liệu là công việc phổ biến của một chương trình phần mềm. Vì vậy, trong bài đăng này, tôi sẽ chia sẻ với bạn một chương trình Java mẫu đọc dữ liệu từ tệp Excel và chèn dữ liệu đó vào cơ sở dữ liệu MySQL. Giả sử rằng chúng ta có một tệp Excel lưu trữ thông tin về các sinh viên đã đăng ký các khóa học như thế này.
Như bạn thấy, file Excel này chỉ có 1 sheet và thông tin sinh viên được lưu trong 3 cột. Tên Học sinh [văn bản], Đã đăng ký [ngày giờ] và Tiến độ [số]. Vì vậy, hãy tạo một bảng tương ứng trong cơ sở dữ liệu với cấu trúc sau.
Bạn có thể chạy tập lệnh MySQL sau để tạo bảng này.
CREATE TABLE `students` [
  `id` int[11] NOT NULL AUTO_INCREMENT,
  `name` varchar[128] NOT NULL,
  `enrolled` timestamp NOT NULL,
  `progress` int[11] NOT NULL,
  PRIMARY KEY [`id`]
];
Xin lưu ý rằng loại dữ liệu của cột enrolled   là dấu thời gian nên có thể chứa cả giá trị ngày và giờ. Để đọc file Excel từ Java, chúng ta có thể sử dụng thư viện Apache POI. Giả sử rằng dự án của bạn sử dụng Maven, vì vậy hãy thêm phần phụ thuộc sau vào pom. tệp xml .
	org.apache.poi
	poi-ooxml
	4.1.0
Và để chèn dữ liệu vào cơ sở dữ liệu MySQL từ Java, chúng ta cần sử dụng phụ thuộc cho trình điều khiển JDBC của MySQL.
	mysql
	mysql-connector-java
	5.1.46
	runtime



Và dưới đây là toàn bộ code của chương trình mẫu đọc dữ liệu từ file Excel và chèn dữ liệu đó vào cơ sở dữ liệu MySQL.
package net.codejava;

import java.io.*;
import java.sql.*;
import java.util.*;

import org.apache.poi.ss.usermodel.*;
import org.apache.poi.xssf.usermodel.*;

/**
 * Sample Java program that imports data from an Excel file to MySQL database.
 * 
 * @author Nam Ha Minh - //www.codejava.net
 * 
 */
public class Excel2DatabaseTest {

	public static void main[String[] args] {
		String jdbcURL = "jdbc:mysql://localhost:3306/sales";
		String username = "user";
		String password = "password";

		String excelFilePath = "Students.xlsx";

		int batchSize = 20;

		Connection connection = null;

		try {
			long start = System.currentTimeMillis[];
			
			FileInputStream inputStream = new FileInputStream[excelFilePath];

			Workbook workbook = new XSSFWorkbook[inputStream];

			Sheet firstSheet = workbook.getSheetAt[0];
			Iterator rowIterator = firstSheet.iterator[];

            connection = DriverManager.getConnection[jdbcURL, username, password];
            connection.setAutoCommit[false];
 
            String sql = "INSERT INTO students [name, enrolled, progress] VALUES [?, ?, ?]";
            PreparedStatement statement = connection.prepareStatement[sql];		
			
            int count = 0;
            
            rowIterator.next[]; // skip the header row
            
			while [rowIterator.hasNext[]] {
				Row nextRow = rowIterator.next[];
				Iterator cellIterator = nextRow.cellIterator[];

				while [cellIterator.hasNext[]] {
					Cell nextCell = cellIterator.next[];

					int columnIndex = nextCell.getColumnIndex[];

					switch [columnIndex] {
					case 0:
						String name = nextCell.getStringCellValue[];
						statement.setString[1, name];
						break;
					case 1:
						Date enrollDate = nextCell.getDateCellValue[];
						statement.setTimestamp[2, new Timestamp[enrollDate.getTime[]]];
					case 2:
						int progress = [int] nextCell.getNumericCellValue[];
						statement.setInt[3, progress];
					}

				}
				
                statement.addBatch[];
                
                if [count % batchSize == 0] {
                    statement.executeBatch[];
                }				

			}

			workbook.close[];
			
            // execute the remaining queries
            statement.executeBatch[];
 
            connection.commit[];
            connection.close[];	
            
            long end = System.currentTimeMillis[];
            System.out.printf["Import done in %d ms\n", [end - start]];
            
		} catch [IOException ex1] {
			System.out.println["Error reading file"];
			ex1.printStackTrace[];
		} catch [SQLException ex2] {
			System.out.println["Database error"];
			ex2.printStackTrace[];
		}

	}
}
Như bạn có thể thấy, chúng tôi sử dụng tính năng cập nhật hàng loạt JDBC để chèn một số lượng lớn hàng vào cơ sở dữ liệu một cách hiệu quả, với kích thước lô là 20 – có nghĩa là nó sẽ nhóm tối đa 20 câu lệnh SQL trong mỗi lô gửi đến máy chủ để xử lý. Chúng tôi cũng sử dụng giao dịch JDBC để đảm bảo rằng tất cả các hàng được chèn hoặc không có hàng nào. Cuối cùng, chúng tôi đo thời gian cần thiết để hoàn thành việc đọc và chèn dữ liệu. Chạy chương trình này và bạn sẽ thấy đầu ra như thế này.
Import done in 3462 ms
Để xác minh, hãy chạy câu lệnh SQL Select trong MySQL Workbench và bạn sẽ thấy.
Đó là cách viết mã Java nhập dữ liệu từ tệp Excel và chèn vào cơ sở dữ liệu. Để bạn tham khảo, tôi đã đính kèm dự án mẫu trong phần Tệp đính kèm bên dưới.

Hướng dẫn liên quan

  • Cách đọc file Excel trong Java
  • Cách thực hiện cập nhật/chèn hàng loạt với JDBC

 

Các hướng dẫn mã hóa Java khác

  • Ví dụ mã Java để chèn dữ liệu từ CSV vào cơ sở dữ liệu
  • Cách hiển thị hình ảnh từ cơ sở dữ liệu trong trang JSP với Java Servlet
  • Cách triển khai nhớ mật khẩu [remember me] cho ứng dụng web Java
  • Cách code đăng nhập và đăng xuất với Java Servlet, JSP và MySQL
  • Cách viết mã Hit Counter cho ứng dụng web Java
  • 10 lỗi thường gặp mà mọi lập trình viên Java mới bắt đầu mắc phải
  • 10 phương pháp hay nhất về Java Core mà mọi lập trình viên Java nên biết
  • Làm thế nào để trở thành một lập trình viên giỏi?
  • Cách tính giá trị băm MD5 và SHA trong Java
  • Ví dụ mã hóa và giải mã tệp Java


Giới thiệu về tác giả

Nam Ha Minh is certified Java programmer [SCJP and SCWCD]. He started programming with Java in the time of Java 1.4 and has been falling in love with Java since then. Make friend with him on Facebook and watch his Java videos you YouTube.



Tệp đính kèm.

Cơ sở dữ liệu Excel2. zip[Ví dụ nhập Excel vào cơ sở dữ liệu Java]22 kB

Thêm bình luận

   

Báo cho tôi biết khi có comment mới

Gửi

Bình luận

12345

Nam2022-11-16 23. 57

Gửi Nicolas. Cân nhắc sử dụng cơ sở dữ liệu nhúng H2 hoặc nhúng Derby

Mmmm2022-11-16 15. 54

Phụ đề xuất sắc Java. Trong xml trong hệ thống

Nicolas2022-11-16 12. 57

Còn việc tạo cùng một ứng dụng nhưng phải là một ứng dụng dành cho máy tính để bàn hoạt động ngoại tuyến thì sao? .
Thanks.

Yash Kotalwar2022-09-27 03. 39

Chỉ cần thêm khối try and catch trong trường hợp 1 và trường hợp 2. nó sẽ hoạt động.
thử[]
trường hợp 1.
bắt[NullPulumException e]{
Case2. }

Somi2022-09-21 01. 58

Trong khi chạy dự án, nó báo lỗi

12345

Làm cách nào để xác thực trang tính Excel trong Java?

Áp dụng xác thực dữ liệu cho ô Excel .
Tạo một đối tượng Workbook và lấy trang tính đầu tiên bằng Workbook. .
Nhận một phạm vi ô cụ thể bằng Worksheet. .
Đặt loại dữ liệu được phép trong ô bằng CellRange. .
Đặt toán tử so sánh bằng CellRange. .
Đặt một hoặc hai công thức để xác thực dữ liệu bằng CellRange

Làm cách nào để xác thực tiêu đề trang tính Excel trong Java?

Bạn có thể sử dụng CellType type = cell. getCellType[]; để kiểm tra xem nó là số hay chuỗi.

Làm cách nào để đọc dữ liệu từ trang tính Excel và chèn vào bảng cơ sở dữ liệu trong Java?

table_daily_report[];

3 loại xác thực dữ liệu trong Excel là gì?

Khi quy tắc xác thực dữ liệu được tạo, có 8 tùy chọn khả dụng để xác thực đầu vào của người dùng. .
Bất kỳ giá trị nào - không có xác thực nào được thực hiện. .
Số nguyên - chỉ cho phép số nguyên. .
Thập phân - hoạt động giống như tùy chọn số nguyên nhưng cho phép giá trị thập phân. .
Danh sách - chỉ các giá trị từ danh sách được xác định trước mới được phép

Chủ Đề