Đọc Ghi File Excel Trong Java Với Jxl

--- Bài mới hơn ---

  • Đọc Dữ Liệu Từ File Excel
  • Tổng Hợp Các Hàm Excel Thường Dùng Trong Kế Toán Kho 2022
  • Làm Kế Toán Bằng Phần Mềm Excel Có Phù Hợp Với Doanh Nghiệp Của Bạn?
  • 20 Hàm Excel Thường Dùng Trong Kế Toán
  • 10 Tuyệt Chiêu Excel Cho Kế Toán Quản Trị
  • Tạo và ghi file Excel với Jxl

    Bước 1: Tạo đối tượng WritableWorkbook “trỏ” đến file của bạn. Lưu ý là nếu file của bạn đã tồn tại thì nó sẽ bị xóa đi và tạo lại.

    WritableWorkbook workbook = Workbook.createWorkbook(new File(fileName));

    Bước 2: Tạo WritableSheet – sheet bạn cần ghi dữ liệu:

    WritableSheet sheet = workbook.createSheet("name sheet", 0);

    Lưu ý: trong hàm createSheet có 2 đối số, đối số thứ nhất là chuỗi tên sheet, đối số thứ 2 là một số nguyên chỉ vị trí của sheet, vị trí sheet bắt đầu bằng 0.

    Bước 3: Tiếp theo chúng ta sẽ thêm các dạng dữ liệu vào các ô bằng phương thức addCell. Để viết dữ liệu vào các ô, chúng ta sẽ có 3 dạng chính: Chuỗi, Số và Công thức lần lượt được tạo bằng Label, Number, Formula. Ví dụ:

    sheet.addCell(new Label(0, 0, "Add a String to cell")); // add a String to cell A1 sheet.addCell(new Number(0, 1, 100)); // add number 100 to cell A2 sheet.addCell(new Formula(0, 3, "IF(A1=1,"one", "two")")); // add number 100 to cell A3

    Bước 4: Sau khi chúng ta đã thực hiện xong bước 3, chúng ta cần thực hiện lệnh writeclose để hoàn tất việc ghi dữ liệu

    workbook.write(); workbook.close();

    Đọc file Excel với Jxl

    Bước 1: Tạo Workbook “trỏ” đến file của bạn.

    Workbook workbook = Workbook.getWorkbook(new File(fileName));

    Bước 2: Lấy Sheet bạn muốn đọc. Bạn có thể lấy theo vị trí sheet hoặc tên Sheet

    Sheet sheet = workbook.getSheet(0);

    Bước 3: Đọc nội dung từng ô trong bảng tính. Nếu bạn muốn lấy nội dung của một ô nào đó bạn có thể làm như sau: sheet.getCell(col, row).getContents(). Tuy nhiên nếu bạn muốn đọc toàn bộ các ô trong bảng tính hãy lấy hàng và cột cuối cùng chứa dữ liệu bằng sheet.getRows()sheet.getColumns(), và dùng vòng lặp for để đọc từng ô. Sau khi đọc xong, chúng ta cũng cần close workbook như khi viết dữ liệu

    for (int row = 0; row < rows; row++) { for (int col = 0; col < cols; col++) { Cell cell = sheet.getCell(col, row); System.out.print(cell.getContents() + "t"); } System.out.println("n"); } workbook.close();

    Mở và ghi thêm dữ liệu vào Excel với Jxl

    Để mở và ghi thêm dữ liệu vào file Excel, trước tiên chúng ta cần lấy Workbook từ file Excel cần viết thêm giống như khi chúng ta đọc. Sau đó tạo một WritableWorkbook đến chính workbook vừa lấy và chúng ta sẽ làm việc với WritableWorkbook này bình thường.

    Workbook workbook = Workbook.getWorkbook(new File(fileName)); WritableWorkbook writeWorkbook = Workbook.createWorkbook(new File(fileName), workbook);

    Demo code

    package vietSource.net.IOFile; import java.io.File; import java.io.IOException; import java.util.Scanner; import jxl.Cell; import jxl.Sheet; import jxl.Workbook; import jxl.read.biff.BiffException; import jxl.write.Formula; import jxl.write.Label; import jxl.write.WritableSheet; import jxl.write.WritableWorkbook; import jxl.write.WriteException; import jxl.write.biff.RowsExceededException; /** */ public class ReadWriteExcel { private final String fileName = "/home/nguyenvanquan7826/Desktop/nguyenvanquan7826.xls"; // data to write file private Object data = { { "STT", "Họ và tên", "Điểm", "Xếp loại" }, { "1", "Nguyễn Văn Quân", "9.0", "" }, { "2", "Phạm Thị Hà", "8.0", "" }, { "3", "Nguyễn Bá Cường", "8.5", "" }, { "4", "Vũ Công Tịnh", "9.0", "" }, { "5", "Phạm Trọng Khang", "8", "" }, { "6", "Mai Văn Tài", "8", "" } }; // create and write new file *.xls private void writeFileExcel() { WritableWorkbook workbook; // create workbook try { workbook = Workbook.createWorkbook(new File(fileName)); // create sheet WritableSheet sheet1 = workbook.createSheet("KTPM K10B", 0); // create Label and add to sheet sheet1.addCell(new Label(0, 0, "DANH SÁCH SINH VIÊN TIÊU BIỂU")); // row begin write data int rowBegin = 2; int colBegin = 0; for (int row = rowBegin, i = 0; row < data.length + rowBegin; row++, i++) { for (int col = colBegin, j = 0; col < data args) { ReadWriteExcel rwExcel = new ReadWriteExcel(); while (true) { rwExcel.showMenu(); Scanner scan = new Scanner(System.in); int select = Integer.parseInt(scan.nextLine()); switch (select) { case 1: rwExcel.writeFileExcel(); break; case 2: rwExcel.readFileExcel(); break; case 3: rwExcel.openAndWriteFileExcel(); break; default: scan.close(); break; } } } }

    --- Bài cũ hơn ---

  • Đọc Ghi File Ms Word Bằng Java Với Apache Poi
  • Hướng Dẫn Xuất Dữ Liệu Lớn Ra File Excel Với Thư Viện Apache Poi
  • Đọc Ghi File Excel Bằng Java Sử Dụng Apache Poi
  • Làm Thế Nào Để Hợp Nhất Nhiều Tệp Excel Thành Một
  • Sử Dụng Excel Làm Máy Tính Tay Của Bạn
  • Đọc Ghi File Excel Trong Java Sử Dụng Apache Poi

    --- Bài mới hơn ---

  • Hướng Dẫn Đọc Và Ghi File Excel Trong Java Sử Dụng Thư Viện Apache Poi
  • Thao Tác Với File Excel Trong Java Sử Dụng Api Apache Poi
  • Cách Cài Đặt Email Trong Outlook
  • Cách Cài Đặt Và Sử Dụng Excel Trên Linux
  • Cách Thêm Các Số 0 Vào Đầu Các Giá Trị Trong Excel
  • 1- Apache POI là gì?

    Apache POI là một thư viện mã nguồn mở Java, được cung cấp bởi Apache, nó là một thư viện đầy sức mạnh giúp bạn làm việc với các tài liệu của Microsoft như Word, Excel, Power point, Visio,…

    POI là viết tắt của“Poor Obfuscation Implementation”. Các định dạng file của Microsoft được giấu kín. Những kỹ sư của Apache phải cố gắng để tìm hiểu nó, và họ thấy rằng Microsoft đã tạo ra các định dạng phức tạp một cách không cần thiết. Và cái tên thư viện bắt nguồn từ sự hài ước.

    Poor Obfuscation Implementation: Sự thực hiện cái nghèo nàn ngu muội. (Tạm dịch là vậy).

    Trong tài liệu này tôi hướng dẫn các bạn sử dụng Apache POI để làm việc với Excel.

    Apache POI hỗ trợ bạn làm việc với các định dạng của Microsoft, các class của nó thường có tiếp đầu ngữ HSSF, XSSF, HPSF, … Nhìn vào tiếp đầu ngữ của một class bạn có thể biết được class đó hỗ trợ loại định dạng nào.

    Chẳng hạn để làm việc với các định dạng Excel (XLS) bạn cần các class:

    • HSSFWorkbook
    • HSSFSheet
    • HSSFCellStyle
    • HSSFDataFormat
    • HSSFFont

    Apache POI cung cấp cho bạn các interfaceWorkbook,Sheet,Row,Cell,… và các class thể hiện (implementation) tương ứng là HSSFWorkbook, HSSFSheet, HSSFRow, HSSFCell,…

    Nếu project của bạn sử dụng Maven, bạn chỉ cần khai báo thư viện một cách đơn giản trong chúng tôi :

    Nếu bạn không sử dụng Maven bạn có thể download thư viện Apache POI tại:

    Download về và giải nén, để làm việc với Excel bạn cần ít nhất 3 file jar:

    • poi-**.jar
    • lib/commons-codec-**.jar
    • lib/commons-collections4-**.jar

    Trong tài liệu này, tôi tạo một Project Maven đơn giản có tên ApachePOIExcel

    • Group ID: org.o7planning
    • Artifact ID: ApachePOIExcel

    Microsoft Office các phiên bản trước đây (97-2003) các file excel có định dạng XLS và các phiên bản mới thường sử dụng định dạng XSLX. Để thao tác với các file XSL bạn cần sử dụng các class có tiếp đầu ngữ HSSF. Còn đối với các file định dạng XSLX cần sử dụng các class có tiếp đầu ngữ XSSF.

    Chú ý: Trong tài liệu này tôi đang sử dụng Apache POI 3.15, API có nhiều thay đổi so với phiên bản cũ hơn. Có nhiều phương thức sẽ bị loại bỏ trong phiên bản tương lai (Apache POI 4.x). POI đang hướng tới sử dụng Enum thay thế cho các hằng số trong API của nó.

    7- Cập nhập file Excel có sẵn

    Trong ví dụ này, tôi đọc file excel chúng tôi và cập nhập các giá trị cho cột Salary tăng lên 2 lần.

    Kết quả sau khi cập nhập:

    Nếu bạn có kiến thức về Excel, sẽ không khó để bạn thiết lập một công thức. Với Apache POI bạn có thể tạo một Cell có kiểu CellType.FORMULA, giá trị của nó được tính dựa trên một công thức.

    SUM

    Ví dụ: Tính tổng các ô trên cùng cột “C” từ dòng thứ 2 tới dòng thứ 4:

    // Tạo cell có kiểu FORMULA cell = row.createCell(rowIndex, CellType.FORMULA); // Sét công thức. cell.setCellFormula("SUM(C2:C4)");

    Công thức từ các ô riêng lẻ:

    cell = row.createCell(rowIndex, CellType.FORMULA); cell.setCellFormula("0.1*C2*D3");

    Với một cell có kiểu FORMULA bạn có thể in ra công thức của nó và sử dụng FormulaEvaluator để tính toán giá trị của ô cho bởi công thức đó.

    // Formula String formula = cell.getCellFormula(); FormulaEvaluator evaluator = workbook.getCreationHelper().createFormulaEvaluator(); // CellValue CellValue cellValue = evaluator.evaluate(cell); double value = cellValue.getNumberValue(); String value = cellValue.getStringValue(); boolean value = cellValue.getBooleanValue(); // ...

    --- Bài cũ hơn ---

  • Hàm Vlookup Cách Sử Dụng Và Bài Tập Áp Dụng Vlookup
  • Lập Báo Cáo Tổng Hợp Tự Động Với Excel Và Vba
  • Hàm Concatenate, Hàm Nối Các Chuỗi Ký Tự Trong Excel
  • Hàm Concatenate Trong Excel, Ứng Dụng Để Nối Các Chuỗi, Ô, Mảng Và Cột
  • 3 Hàm Nối Chuỗi Trong Excel Cực Hay Và Đơn Giản Được Sử Dụng Nhất
  • Java: Cách Tạo Và Chèn Dữ Liệu Vào File Excel

    --- Bài mới hơn ---

  • Làm Cách Nào Để Chèn Hoặc Nhúng Thư Outlook Vào Excel?
  • Cách Xem Nhanh Tệp Tin Đính Kèm Trong Outlook
  • Những Lưu Ý Sử Dụng Bộ Microsoft Office Cho Windows 10
  • Hướng Dẫn Lập Dự Toán Xây Dựng Công Trình Trên Excel
  • Tải File Về Không Mở Được Trên Điện Thoại
  • Trong Java, việc đọc tệp excel và ghi tệp excel có một chút khó khăn vì trang tính Excel có các ô để lưu trữ dữ liệu. Java không cung cấp API trực tiếp để đọc hoặc viết các tài liệu Microsoft Excel hoặc Word. Ta sẽ phải dựa vào thư viện của bên thứ ba là Apache POI. Trong phần này, chúng ta sẽ học cách tạo một tệp excel bằng Javacách ghi hoặc chèn dữ liệu vào tệp excel bằng thư viện Apache POI Java.

    1. Thư viện POI Java Apache

    Apache POI (Thực hiện giải mã kém) là một API Java để đọc và ghi Tài liệu Microsoft. Nó chứa các lớp và giao diện. Thư viện Apache POI cung cấp hai cách triển khai để đọc hoặc ghi tệp excel:

    • Triển khai HSSF (Horrible SpadSheet Format): Nó biểu thị một API đang hoạt động với Excel 2003 hoặc các phiên bản cũ hơn.
    • Triển khai XSSF (XML SpadSheet Format): Nó biểu thị một API đang hoạt động với phiên bản Excel 2007 trở lên.

    Trong phần này sẽ sẽ sử dụng triển khai HSSF.

    2. Tạo file Excel trong Java

    Bước 1: Tạo một dự án Java với tên CreateExcelFile từ IntelliJ.

    Bước 2: Tạo một lớp tên CreateExcelFileExample1.

    Bước 2: Tải xuống thư viện Apache POI ( poi-3.17.jar).

    Bước 5: Nhấp chọn Libraries sau đó nhấn dấu + và chọn Java như hình dưới:

    Bước 6: Tìm đến nơi chứa file chúng tôi rồi chọn và nhấp vào nút OK. Điều này sẽ thêm tệp JAR vào dự án. Sau đó, nhấp vào nút Apply để áp dụng các thay đổi rồi nhấn nút OK.

    Sau khi đã hoàn thành tất cả các bước trên, cấu trúc dự án sẽ giống như sau:

    Giờ ta sẽ tiếp tục với các đoạn mã:

    Trong chương trình sau, ta sử dụng thư viện Apache POI để tạo một file excel. Thư viện cung cấp lớp có tên HSSFWorkbook được định nghĩa trong gói org.apache.poi.hssf.usermodel.

    CreateExcelFileExample1.java

    import java.io.*; import org.apache.poi.hssf.usermodel.HSSFWorkbook; import org.apache.poi.ss.usermodel.Workbook; public class CreateExcelFileExample1 { public static void main(String args) { try { String filename = "C: \ Users \ Anubhav \ Desktop \ CustomersDetail.xlsx"; FileOutputStream fileOut = new FileOutputStream(filename); fileOut.close(); System.out.println("File Excel được tạo thành công."); } catch (Exception e) { e.printStackTrace(); } } }

    Kết quả:

    “C:Program FilesJetBrainsIntelliJ IDEA Community Edition 2022.3.1jbrbinjava.exe” “-javaagent:C:Program FilesJetBrainsIntelliJ IDEA Community Edition 2022.3.1libidea_rt.jar=58581:C:Program FilesJetBrainsIntelliJ IDEA Community Edition 2022.3.1bin” -Dfile.encoding=UTF-8 -classpath E:CoursesJavaCreateExcelFileoutproductionCreateExcelFile;E:CoursesJavaCreateExcelFilepoi-3.17.jar CreateExcelFileExample2

    File Excel được tạo thành công.

    Ta đã tạo được một tệp excel trống tại vị trí được chỉ định.

    3. Tạo và chèn dữ liệu vào file Excel

    CreateExcelFileExample3.java

    import java.io.*; import org.apache.poi.hssf.usermodel.HSSFSheet; import org.apache.poi.hssf.usermodel.HSSFWorkbook; import org.apache.poi.hssf.usermodel.HSSFRow; public class CreateExcelFileExample3 { public static void main(String");[email protected]");

    Kết quả:

    “C:Program FilesJetBrainsIntelliJ IDEA Community Edition 2022.3.1jbrbinjava.exe” “-javaagent:C:Program FilesJetBrainsIntelliJ IDEA Community Edition 2022.3.1libidea_rt.jar=58597:C:Program FilesJetBrainsIntelliJ IDEA Community Edition 2022.3.1bin” -Dfile.encoding=UTF-8 -classpath E:CoursesJavaCreateExcelFileoutproductionCreateExcelFile;E:CoursesJavaCreateExcelFilepoi-3.17.jar CreateExcelFileExample3

    File Excel đã được tạo thành công.

    Nó tạo một tệp excel tại vị trí được chỉ định với các giá trị mà ta đã chèn bằng cách sử dụng phương thức setCellValue().

    --- Bài cũ hơn ---

  • Đọc Ghi Excel File Sử Dụng Apache Poi
  • Thao Tác Với Excel File Bằng Apache Poi
  • Hàm Vlookup Với Một Số Ví Dụ Cơ Bản Và Nâng Cao Trong Excel
  • Làm Cách Nào Để Đếm / Chỉ Tính Tổng Các Số Dương Hoặc Số Âm Trong Excel?
  • Hướng Dẫn Cách Dùng Hàm Nối Ký Tự Trong Excel
  • Đọc Ghi File Excel Bằng Java Sử Dụng Apache Poi

    --- Bài mới hơn ---

  • Hướng Dẫn Xuất Dữ Liệu Lớn Ra File Excel Với Thư Viện Apache Poi
  • Đọc Ghi File Ms Word Bằng Java Với Apache Poi
  • Đọc Ghi File Excel Trong Java Với Jxl
  • Đọc Dữ Liệu Từ File Excel
  • Tổng Hợp Các Hàm Excel Thường Dùng Trong Kế Toán Kho 2022
  • Đọc ghi file Excel bằng Java sử dụng Apache POI

    Apache POI là một thư viện mã nguồn mở cung cấp bởi apache được sử dụng để xử lý các file office như word, excel, powerpoint…

    1.1 Xử lý file Excel với Apache POI

    Apache POI xử lý các thành phần trong excel theo đúng lập trình hướng đối tượng – mỗi thành phần trong Excel đều được coi như 1 đối tượng.

    Các class cơ bản được dùng để đọc ghi file Excel

    • HSSF: các class có tên bắt đầu là HSSF được dùng để sử lý các file Microsoft Excel 2003 (.xls)
    • XSSF: các class có tên bắt đầu là XSSF được dùng để sử lý các file Microsoft Excel 2007 trở về sau (.xlsx)
    • XSSFWorkbookHSSFWorkbook là các class xử lý với Excel Workbook
    • HSSFSheetXSSFSheet là các class xử lý với Excel Worksheet
    • Row: định nghĩa một dòng trong excel
    • Cell: định nghĩa một ô trong excel

    Ở đây mình sử dụng maven để lấy thư viện của Apache POI.

      Cho các file Microsoft Excel 2003

      Cho các file Microsoft Excel 2007 trở về sau

    3.1 Ghi file Excel

    Tạo 1 Worksheet có name là “Customer_Info”

    dòng đầu tiên hiển thị “List Of Customer”

    Các dòng tiếp theo hiển thị các thông tin của customer (id, name, email), mỗi thông tin ở 1 column.

    package stackjava.com.apachepoiexcel.demo; import java.io.FileNotFoundException; import java.io.FileOutputStream; import java.io.IOException; import java.util.ArrayList; import java.util.List; import org.apache.poi.ss.usermodel.Cell; import org.apache.poi.ss.usermodel.Row; import org.apache.poi.xssf.usermodel.XSSFSheet; import org.apache.poi.xssf.usermodel.XSSFWorkbook; public class WriteFileExcel { public static void main(String args) { try { FileInputStream excelFile = new FileInputStream(new File("Demo-ApachePOI-Excel.xlsx")); Workbook workbook = new XSSFWorkbook(excelFile); Sheet datatypeSheet = workbook.getSheetAt(0); DataFormatter fmt = new DataFormatter(); Row firstRow = iterator.next(); Cell firstCell = firstRow.getCell(0); System.out.println(firstCell.getStringCellValue()); while (iterator.hasNext()) { Row currentRow = iterator.next(); Customer customer = new Customer(); customer.setId(Integer.parseInt(fmt.formatCellValue(currentRow.getCell(0)))); customer.setName(currentRow.getCell(1).getStringCellValue()); customer.setEmail(currentRow.getCell(2).getStringCellValue()); listOfCustomer.add(customer); } for (Customer customer : listOfCustomer) { System.out.println(customer); } workbook.close(); } catch (FileNotFoundException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } } }

    *Lưu ý: id của customer là integer nên khi ghi vào file excel nó sẽ là kiểu numeric, do đó khi đọc ra thì nó sẽ đọc là numeric và chuyển thành double, ví dụ 1 sẽ là 1.0. Do đó ta dùng DataFormatter để định dạng nó về kiểu string và parse lại thành integer.

    Kết quả:

    List of Customer Customer Customer [id=3, name=Vin Diesel, [email protected]]

    Okay, Done!

    Đọc ghi file Excel bằng Java sử dụng Apache POI

    Reference:

    --- Bài cũ hơn ---

  • Làm Thế Nào Để Hợp Nhất Nhiều Tệp Excel Thành Một
  • Sử Dụng Excel Làm Máy Tính Tay Của Bạn
  • Cách Sử Dụng Excel Online Trên Máy Tính Của Bạn
  • Những Hàm Cơ Bản Nhất Trong Excel
  • Cách Lập Các Nghiệp Vụ Kế Toán Bán Hàng Bằng Phần Mềm Quản Lý Bán Hàng Trên Excel Miễn Phí
  • Đọc Và Ghi File Trong Java (Bài 5)

    --- Bài mới hơn ---

  • Cách Làm Sổ Sách Kế Toán Trên Excel Doanh Nghiệp
  • Các Công Việc Của Kế Toán Thuế Trong Doanh Nghiệp Vừa Và Nhỏ
  • Excel Trong Kế Toán Bán Hàng
  • Tải Bài Tập Excel Kế Toán Có Lời Giải
  • Một Số Công Cụ Excel Tiện Ích Cho Kế Toán
  • Đọc và ghi file trong java là các hoạt động nhập/xuất dữ liệu (nhập dữ liệu từ bàn phím, đọc dữ liệu từ file, ghi dữ liệu lên màn hình, ghi ra file, ghi ra đĩa, ghi ra máy in…) đều được gọi là luồng (stream).

    Đọc và ghi file trong java – Các loại luồng dữ liệu

    • Bước 1: Tạo đối tượng luồng và liên kết với nguồn dữ liệu.
    • Bước 2: Thao tác dữ liệu (đọc hoặc ghi hoặc cả hai).
    • Bước 3: Đóng luồng.

    Xử lý nhập xuất dữ liệu sử dụng luồng byte

    Sử dụng luồng byte trong các trường hợp như nhập xuất kiểu dữ liệu nguyên thủy (như kiểu int, float, double, boolean), nhập xuất kiểu dữ liệu kiểu đối tượng (object)

    Đọc và ghi dữ liệu nhị phân (binary data)

    package file_handling; import java.io.DataOutputStream; import java.io.FileNotFoundException; import java.io.FileOutputStream; import java.io.IOException; /** * * @author chúng tôi */ public class DataOutputExample { public static void main(String args) { try { //Bước 1: Tạo đối tượng luồng và liên kết nguồn dữ liệu FileInputStream fis = new FileInputStream("d:/file/mydata.bin"); DataInputStream dis = new DataInputStream(fis); //Bước 2: Đọc dữ liệu int n = dis.readInt(); double m = dis.readDouble(); //Bước 3: Đóng luồng fis.close(); dis.close(); //Hiển thị nội dung đọc từ file System.out.println("Số nguyên: " + n); System.out.println("Số thực: " + m); } catch (IOException ex) { ex.printStackTrace(); } } }

    Ví dụ 3: Đọc và ghi dữ liệu kiểu object

    Tạo lớp Stock và lớp này phải cài đặt giao diện Serializable

    package file; import java.io.Serializable; /** * * @author chúng tôi */ public class Stock implements Serializable{ private int id; private String desc; private double price; private int quantity; public Stock(int id, String desc, double price, int quantity) { chúng tôi = id; chúng tôi = desc; this.price = price; this.quantity = quantity; } @Override public String toString() { return id + "-" + desc + "-" + price + "-" + quantity; } }

    Tạo lớp ObjectOutputExample dùng để ghi dữ liệu kiểu object

    package file; import java.io.FileNotFoundException; import java.io.FileOutputStream; import java.io.IOException; import java.io.ObjectOutputStream; /** * * @author chúng tôi */ public class ObjectOutputExample { public static void main(String = { new Stock(1, "CD ROM", 100, 2) ,new Stock(2, "CPU", 500, 2) ,new Stock(3, "HP Scanner", 75, 1) }; //Bước 2: Ghi mảng đối tượng vào file oos.writeObject(s); //Bước 3: Đóng luồng fos.close(); oos.close(); } catch (IOException ex) { System.out.println("Loi ghi file: "+ex); } } }

    Tạo lớp ObjectInputExample dùng để đọc dữ liệu kiểu object

    package file; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.ObjectInputStream; /** * * @author chúng tôi */ public class ObjectInputExample { public static void main(String = (Stock args) { try { //Bước 1: Tạo đối tượng luồng và liên kết nguồn dữ liệu File f = new File("d:/mydata3.txt"); FileWriter fw = new FileWriter(f); //Bước 2: Ghi dữ liệu fw.write("Ghi dữ liệu bằng luồng character"); //Bước 3: Đóng luồng fw.close(); } catch (IOException ex) { System.out.println("Loi ghi file: " + ex); } } }

    Ví dụ 2: Đọc dữ liệu với FileReader

    package file_handling; import java.io.BufferedReader; import java.io.File; import java.io.FileReader; /** * * @author chúng tôi */ public class FileReaderExample { public static void main(String[] args) { try { //Bước 1: Tạo đối tượng luồng và liên kết nguồn dữ liệu File f = new File("d:/mydata3.txt"); FileReader fr = new FileReader(f); //Bước 2: Đọc dữ liệu BufferedReader br = new BufferedReader(fr); String line; while ((line = br.readLine()) != null){ System.out.println(line); } //Bước 3: Đóng luồng fr.close(); br.close(); } catch (Exception ex) { System.out.println("Loi doc file: "+ex); } } }

    Đọc và ghi file trong java – Thực hành

    Tạo package tên file và thực hiện các yêu cầu bên dưới

    Bài thực hành số 1: Tạo lớp NhanVien có các thuộc tính mã nhân viên, họ tên, tuổi và lương.

    • Viết setter, getter, constructor và toString.
    • Viết phương thức cho phép nhập thông tin cho 3 nhân viên từ bàn phím. Sử dụng FileWriter để ghi thông tin vào nhanvien.txt.
    • Viết phương thức để đọc nội dung file chúng tôi và in những gì đọc được từ file ra màn hình.

    Bài thực hành số 2: Tạo lớp mới và thực hiện các xử lý sau

    • Viết phương thức tạo mảng 3 nhân viên, nhập thông tin cho các nhân viên, sử dụng ObjectOutputStream để ghi mảng đối tượng nhân viên vào file nhanvien.bin
    • Viết phương thức để đọc file chúng tôi và in mảng nhân viên ra màn hình.

    --- Bài cũ hơn ---

  • Cách Đặt Mật Khẩu Password Cho File Excel
  • Cách Lấy Lại File Excel Chưa Lưu, Bị Lưu Đè, Bị Xóa Đơn Giản Nhất
  • Các Hàm Excel Chuyên Dùng Trong Kế Toán Kho
  • Những Hàm Excel Mà Kế Toán Thường Dùng ” Kế Toán Lê Ánh
  • Các Hàm Excel Thường Dùng Trong Kế Toán Kho Các Bạn Cần Biết
  • Thao Tác Với File Excel Trong Java Sử Dụng Api Apache Poi

    --- Bài mới hơn ---

  • Cách Cài Đặt Email Trong Outlook
  • Cách Cài Đặt Và Sử Dụng Excel Trên Linux
  • Cách Thêm Các Số 0 Vào Đầu Các Giá Trị Trong Excel
  • Phím Tắt Ubuntu, Tổng Hợp Phím Nóng Hay Sử Dụng Trong Hệ Điều Hành Ubu
  • Không Thể Tìm Thấy Các Ứng Dụng Office Trong Windows 10, Windows 8 Hoặc Windows 7?
  • Đôi điều về Apache POI

    Nhiều khi trong một ứng dụng phần mềm cần thiết phải tạo ra các báo cáo trong định dạng file Microsoft Excel, hoặc sẽ nhận file Excel như dữ liệu đầu vào. Ví dụ, một ứng dụng được phát triển cho bộ phận Tài chính của một công ty sẽ được yêu cầu để tạo ra tất cả các kết quả đầu ra là file Excel. Bất kỳ lập trình viên Java nào muốn sản xuất các tập tin MS Office như đầu ra thì nên sử dụng một giao diện lập trình(API) để làm như vậy. Apache POI là một API cho phép lập trình viên tạo mới, sửa và hiển thị Microsoft Office file sử dụng Java. Apache POI là một thư viện mã nguồn mở được phát triển và xuất bản bởi Apache Software Foundation.

    Cấu phần của Apache POI

    Apache POI chứa các lớp và phương thức để làm việc trên các tài liệu dưới định dạng file MS Office. Danh sách các thành phần của API như sau.

    POIFS (Poor Obfuscation Implementation File System) : This component is the basic factor of all other POI elements. It is used to read different files explicitly.

    HPSF (Horrible Property Set Format) : Được sử dụng để trích xuất các thuộc tính của file MS-Office.

    HWPF (Horrible Word Processor Format) : Được sử dụng để đọc ghi định dạng .doc của file MS-Office.

    XWPF (XML Word Processor Format) : Được sử dụng để đọc ghi định dạng .docx của file MS-Office.

    HSLF (Horrible Slide Layout Format) : Được sử dụng để đọc ghi file PowerPoint.

    HDGF (Horrible DiaGram Format) : Được sử dụng cho file MS-Visio dưới dạng binary.

    HPBF (Horrible PuBlisher Format) : Được sử dụng để đọc ghi file MS-Publisher.

    Note

    Các phiên bản cũ của Apache POI chỉ hỗ trợ các định dạng file binary như doc, xls, ppt, vv từ phiên bản 3.5 trở đi, POI hỗ trợ các định dạng file OOXML của MS-Office như docx, xlsx, pptx, vv

    Làm việc với MS-Excel

    Excel là định dạng file rất phổ biến được tạo bởi Microsoft. Mặc dù nó không phải là định dạng file mở nhưng ứng dụng Java vẫn có thể đọc, ghi Excel file bằng cách sử dụng giao diện lập trình Apache POI.

      Cách thức lấy thư viện Apache POI Để sử dụng POI cho ứng dụng của bạn, có 2 cách:
    • Cho ứng dụng Maven: Thêm các dependency sau vào file pom.xml:

    Chúng ta sẽ sử dụng entity Book để đọc ghi dữ liệu

    package vuta.apache.poi.example; public class Book { private String title; private String author; private double price; public Book() { } public Book(String title, String author, double price) { super(); this.title = title; this.author = author; this.price = price; } public String toString() { return String.format("%s - %s - %f", title, author, price); } public String getTitle() { return title; } public void setTitle(String title) { this.title = title; } public String getAuthor() { return author; } public void setAuthor(String author) { this.author = author; } public double getPrice() { return price; } public void setPrice(double price) { this.price = price; } }

    --- Bài cũ hơn ---

  • Hướng Dẫn Đọc Và Ghi File Excel Trong Java Sử Dụng Thư Viện Apache Poi
  • Đọc Ghi File Excel Trong Java Sử Dụng Apache Poi
  • Hàm Vlookup Cách Sử Dụng Và Bài Tập Áp Dụng Vlookup
  • Lập Báo Cáo Tổng Hợp Tự Động Với Excel Và Vba
  • Hàm Concatenate, Hàm Nối Các Chuỗi Ký Tự Trong Excel
  • Hướng Dẫn Đọc Và Ghi File Excel Trong Java Sử Dụng Thư Viện Apache Poi

    --- Bài mới hơn ---

  • Thao Tác Với File Excel Trong Java Sử Dụng Api Apache Poi
  • Cách Cài Đặt Email Trong Outlook
  • Cách Cài Đặt Và Sử Dụng Excel Trên Linux
  • Cách Thêm Các Số 0 Vào Đầu Các Giá Trị Trong Excel
  • Phím Tắt Ubuntu, Tổng Hợp Phím Nóng Hay Sử Dụng Trong Hệ Điều Hành Ubu
  • Excel là định dạng file rất phổ biến được tạo ra bởi Microsoft. Thông thường, các ứng dụng Java sử dụng thư viện Apache POI để đọc và ghi tập tin Excel. Trong bài này, tôi sẽ hướng dẫn cách để đọc và ghi các tập tin Excel sử dụng API của thư viện Apache POI.

    Giới thiệu về Apache POI?

    Apache POI là một thư viện mã nguồn mở Java, được cung cấp bởi Apache. Thư viện này cung cấp các API (phương thức) làm việc với các tài liệu của Microsoft như Word, Excel, Power point, Visio,…

    Các class của Apache POI thường có tiếp đầu ngữ HSSF, XSSF, HPSF, … Nhìn vào tiếp đầu ngữ của một class bạn có thể biết được class đó hỗ trợ loại định dạng nào.

    • HSSF (Horrible SpadSheet Format): Đọc và ghi file định dạng Microsoft Excel (XLS – định dạng hỗ trợ của Excel 2003).
    • XSSF (XML SpadSheet Format): Đọc và ghi định dạng file Open Office XML (XLSX – định dạng hỗ trợ của Excel 2007 trở lên).
    • SXSSF (Streaming version of XSSFWorkbook) : SXSSF là một phần mở rộng API của XSSF, được sử dụng khi xuất các file excel lớn và có bộ nhớ heap sapce hạn chế.

    Tổng quan Apache POI Excel

    Microsoft Excel hiện tại có 2 phần mở rộng:

    • .xls: tương ứng với phiên bản Microsoft Excel 2003 trở về trước. Định dạng này được Apache POI hỗ trợ bởi các lớp java với tiếp đầu ngữ là HSSF.
    • .xlsx: tương ứng với phiên bản Microsoft Excel 2007 trở về sau. Định dạng này được Apache POI hỗ trợ bởi các lớp java với tiếp đầu ngữ là XSSF, SXSSF.

    Một số khái niệm cơ bản của Apache API:

    Apache POI cung cấp cho bạn các interface Workbook, Sheet, Row, Cell,… và các class thể hiện (implementation) tương ứng:

    • Workbook: đại diện cho một file Excel. Nó được triển khai dưới hai class là: HSSFWorkbook và XSSFWorkbook tương ứng cho định dạng .xls và .xlsx .
    • Sheet: đại diện cho một bảng tính Excel (một file Excel có thể có nhiều Sheet). Nó có 2 class là HSSFSheet và XSSFSheet.
    • Row: đại diện cho một hàng trong một bảng tính (Sheet). Nó có 2 class là HSSFRow và XSSFRow.
    • Cell: đại diện cho một ô trong một hàng (Row). Tương tự nó cũng có 2 class là HSSFCell and XSSFCell.

    Khai báo thư viện Apache POI

    Tạo Maven project và khai báo thư viện trong file chúng tôi của project như sau:

    Lưu ý: Các phiên bản cũ của Apache POI chỉ hỗ trợ các định dạng file binary như doc, xls, ppt, … .Từ phiên bản 3.5 trở đi, POI hỗ trợ các định dạng file OOXML của MS-Office như docx, xlsx, pptx, …

    Ví dụ đọc và ghi file Excel

    Microsoft Office các phiên bản trước đây (97-2003) các file excel có định dạng .xls và các phiên bản mới hơn (2007 trở về sau) thường sử dụng định dạng .xlsx. Để thao tác với các file .xls cần sử dụng các class có tiếp đầu ngữ HSSF. Còn đối với các file định dạng .xlsx cần sử dụng các class có tiếp đầu ngữ XSSF.

    Ví dụ ghi file excel (.xls, .xlsx)

    Book.java

    package com.gpcoder.apachepoi; public class Book { private Integer id; private String title; private Integer quantity; private Double price; private Double totalMoney; }

    WriteExcelExample.java

    Thực thi chương trình trên, một file chúng tôi được tạo ra trong thư mục C:/demo như sau:

    Ví dụ đọc file excel (.xls, .xlsx)

    Kết quả thực thi chương trình trên:

    Book Book Book

    Lưu ý:

    Các kiểu dữ liệu số khi đọc từ file excel sẽ có giá trị là kiểu double.

    Nguồn: https://gpcoder.com/3144-huong-dan-doc-va-ghi-file-excel-trong-java-su-dung-thu-vien-apache-poi/

    All Rights Reserved

    --- Bài cũ hơn ---

  • Đọc Ghi File Excel Trong Java Sử Dụng Apache Poi
  • Hàm Vlookup Cách Sử Dụng Và Bài Tập Áp Dụng Vlookup
  • Lập Báo Cáo Tổng Hợp Tự Động Với Excel Và Vba
  • Hàm Concatenate, Hàm Nối Các Chuỗi Ký Tự Trong Excel
  • Hàm Concatenate Trong Excel, Ứng Dụng Để Nối Các Chuỗi, Ô, Mảng Và Cột
  • Hướng Dẫn Đọc File Text Trong Java Sử Dụng “bufferedreader”

    --- Bài mới hơn ---

  • Cách Sửa Lỗi Cách Dòng Khi Căn Đều Trong Word
  • Cách Chuyển Vntime Sang Time New Roman Trong Word Và Excel
  • Cách Chuyển Font Chữ Vntime Sang Time New Roman Giữ Định Dạng
  • Lỗi Không Đánh Được Chữ Và Cách Sửa Lỗi Trong Word 2010,2016
  • Word Bị Lỗi Không Sửa Được, Word Lỗi Không Thêm Nội Dung Mới Được
  • Khi sử dụng class BufferedReader trong Java để đọc nội dung một file text thì chúng ta có hai cách khác nhau đó là sử dụng method readLine() hoặc read() của class này. Trong bài viết này chúng ta sẽ tìm hiểu cách làm chi tiết của từng phương pháp với việc áp dụng vào đọc một file text nằm ở địa chỉ C:tmptest.txt.

    Chuẩn Bị

    Trước tiên thì bạn cần tạo file test.txt ở địa chỉ thư mục C:tmp như vừa đề cập để đảm bảo quá trình đọc nội dung file không gặp lỗi.

    Sau đó bạn tạo một tập tin Main.java với nội dung như sau:

    import java.io.BufferedReader; import java.io.FileReader; import java.io.IOException; public class Main { public static void main(String[] args) { } }

    Bây giờ bên trong method main() của Main class này chúng ta sẽ thêm code Java để thực hiện việc đọc nội dung của file text sử dụng BufferedReader theo hai cách khác nhau.

    Đọc File Text Sử Dụng BufferedReader với readLine()

    Để đọc file theo cách này thì trong method main() của Main class bạn thêm đoạn code phía sau:

    ... BufferedReader br = null; try { br = new BufferedReader(new FileReader("C:\tmp\test.txt")); System.out.println("Đọc nội dung file sử dụng phương thức readLine()"); String textInALine; while ((textInALine = br.readLine()) != null) { System.out.println(textInALine); textInALine = br.readLine(); } } catch (IOException e) { e.printStackTrace(); } finally { try { br.close(); } catch (IOException e) { e.printStackTrace(); } } ...

    Đoạn code đầy đủ của class Main.java sẽ như sau:

    Ở đoạn code trên bạn chú ý method br.readLine() được gọi môi khi vòng lặp while được chạy để kiểm tra điều kiện của vòng lặp này cho tới khi nào giá trị trả về đồng thời in ra nội dung của giá trị này nếu như giá trị này khác null, trường hợp giá trị này là null thì chấm dứt vòng lặp:

    while ((textInALine = br.readLine()) != null) { System.out.println(textInALine); textInALine = br.readLine(); }

    Đọc File Text Sử Dụng BufferedReader với read()

    Để sử dụng cách này thì trong method main() trống được tạo ra lúc đầu bạn thêm vào đoạn code phía sau:

    ... BufferedReader br = null; try { br = new BufferedReader(new FileReader("C:\tmp\test.txt")); System.out.println("Đọc nội dung file sử dụng phương thức read()"); int num=0; char ch; while((num = br.read()) != -1) { ch = (char) num; System.out.print(ch); } } catch (IOException e) { e.printStackTrace(); } finally { try { br.close(); } catch (IOException e) { e.printStackTrace(); } } ...

    Đoạn code đầy đủ của class Main.java sẽ như sau:

    Khi gọi br.read(), Java sẽ trả về từng các số mã hoá của từng ký tự thay vì nội dung cả dòng như cách sử dụng redline(). Chúng ta cũng sử dụng vòng lặp while để đọc ra từng số mã hoá ký tự này và sau đó chuyển hoá về dạng ký tự chữ:

    while((num = br.read()) != -1) { ch = (char) num; System.out.print(ch); }

    --- Bài cũ hơn ---

  • Căn Chỉnh Văn Bản Trong Word 2010
  • Header Là Gì? Những Điều Thu Vị Cần Biết Về Header Trong Web, Pts, Word
  • Hướng Dẫn Cách Tạo Văn Bản Ngẫu Nhiên Trong Word Đơn Giản
  • Tạo Liên Kết Hyperlink Trong Word
  • Microsoft Word: Cách Tạo Tiêu Đề Trang (Header) Và Chân Trang (Footer)
  • Đọc Ghi File Ms Word Bằng Java Với Apache Poi

    --- Bài mới hơn ---

  • Đọc Ghi File Excel Trong Java Với Jxl
  • Đọc Dữ Liệu Từ File Excel
  • Tổng Hợp Các Hàm Excel Thường Dùng Trong Kế Toán Kho 2022
  • Làm Kế Toán Bằng Phần Mềm Excel Có Phù Hợp Với Doanh Nghiệp Của Bạn?
  • 20 Hàm Excel Thường Dùng Trong Kế Toán
  • Đọc ghi file MS Word bằng Java với Apache POI

    Apache POI là một thư viện mã nguồn mở cung cấp bởi apache được sử dụng để xử lý các file office như word, excel, powerpoint…

    XWPFDocument:Được sử dụng để đọc ghi các file MS-Word với định dạng .docx (đọc, lưu file, thêm đoạn văn bản…)

    XWPFParagraph: Được dùng để tạo đoạn paragraph trong tài liệu word. (Tùy chỉnh căn lề, border)

    XWPFRun: Được sử dụng thể thêm text vào paragraph (Tùy chỉnh font, size…)

    XWPFTable: Được dùng để thêm mới bảng vào file (Thêm cột, thêm dòng, cài đặt chiều rộng cho cột)

    XWPFWordExtractor: Đây là class cơ bản được dùng để lấy text đơn giản từ tài liệu word (lấy tất cả text bên trong file word)

    Thư viện sử dụng:

    Ví dụ ghi file MS Word:

    package stackjava.com.apachepoi.word.demo; import java.io.File; import java.io.FileOutputStream; import java.io.IOException; import org.apache.poi.xwpf.usermodel.XWPFDocument; import org.apache.poi.xwpf.usermodel.XWPFParagraph; import org.apache.poi.xwpf.usermodel.XWPFRun; public class DemoWrite { public static void main(String args) { try { FileInputStream fis = new FileInputStream("demo-apache-apoi-word.docx"); XWPFDocument document = new XWPFDocument(OPCPackage.open(fis)); for (XWPFParagraph paragraph : paragraphList) { System.out.println(paragraph.getText()); } System.out.println("=============================="); System.out.println("Read file using XWPFWordExtractor "); XWPFWordExtractor wordExtractor = new XWPFWordExtractor(document); System.out.println(wordExtractor.getText()); wordExtractor.close(); document.close(); } catch (Exception ex) { ex.printStackTrace(); } } }

    Kết quả:

    Paragraph 1: stackjava.com Paragraph 2: demo read/write file MS-Word ============================== Read file using XWPFWordExtractor Paragraph 1: stackjava.com Paragraph 2: demo read/write file MS-Word

    Okay, Done!

    References:

    https://poi.apache.org/document/

    --- Bài cũ hơn ---

  • Hướng Dẫn Xuất Dữ Liệu Lớn Ra File Excel Với Thư Viện Apache Poi
  • Đọc Ghi File Excel Bằng Java Sử Dụng Apache Poi
  • Làm Thế Nào Để Hợp Nhất Nhiều Tệp Excel Thành Một
  • Sử Dụng Excel Làm Máy Tính Tay Của Bạn
  • Cách Sử Dụng Excel Online Trên Máy Tính Của Bạn
  • Tạo File Pdf Trong Java, Sử Dụng Flying Saucer Và Thymeleaf

    --- Bài mới hơn ---

  • Cách Lưu Trữ Trong Outlook ( Emails, Công Việc, Lịch Và Các Mục Khác)
  • Hyperlinks Không Hoạt Động Được Trong Outlook? Cách Để Kích Hoạt Lại Hyperlinks Trong Outlook Phiên Bản 2022, 2013, 2010 Và Cũ Hơn
  • Cách Cài Đặt Và Sử Dụng Microsoft Office Trên Ubuntu, Cực Dễ!
  • Hướng Dẫn Tách Nội Dung Cột Trong Excel
  • Ubuntu Đã Có Mặt Trong Windows Store, Và Đây Là Cách Tải
  • Chắc hẳn các bạn đã quá quen thuộc với các file định dạng PDF. Nào là CV, các văn bản đặc tả spec, các công văn, báo cáo, các vé điện tử .v.v.v Điều đó đặt ra yêu cầu các ứng dụng web phải có khả năng xuất file PDF với format nào đó phù hợp với từng yêu cầu của hệ thống chức năng. Bài viết hôm nay của mình sẽ hướng dẫn các bạn dùng Java để thực hiện điều đó!

    Trong bài này, các bạn sẽ thấy, quá trình xuất file PDF của mình gồm 2 bước chính như sau

    1. Sử Thymeleaf để đưa dữ liệu vào mẫu và từ đó nhận được document dạng XHTML với các data đã được bind. Mình ví dụ hình trên, $$name} được gán với giá trị Thomas

    2. Save document XHTML đó dưới dạng PDF sử dụng Flying Saucer.

    Lưu ý rằngm 2 bước trên là hoàn toàn đoọc lập. Chúng ta có thể dễ dàng sử dụng các template engine khác (ví dụ như Apache FreeMarker) hay thậm chí là HTML thuần. Tuy nhiên, bài viết này sử dụng Thymeleaf là bởi vì Thymeleaf là 1 template engine rất phổ biến được biệt là khi làm việc với Spring

    Để bắt đầu, chúng ta cần 3 dependencies

    compile group: 'org.thymeleaf', name: 'thymeleaf', version: '3.0.6.RELEASE' compile group: 'org.xhtmlrenderer', name: 'flying-saucer-core', version: '9.1.6' compile group: 'org.xhtmlrenderer', name: 'flying-saucer-pdf-itext5', version: '9.1.6'

    Đầu tiên, để đơn giản cho các bạn dễ hình dung, mình sẽ sử dụng 1 ví dụ đơn giản trước, Ở đây Thymeleaf Template mình tạo đơn giản như sau

    và đển render template này với ThymeLeaf, bạn có thể sử dụng đoạn code sau

    Và như thế, bạn đã có 1 chuỗi là chuỗi htlml sau khi bind dữ liệu (name = Thomas).

    Việc tiếp theo là sử dụng chuỗi này cho việc chuyển hóa sang PDF thôi.

    Chú ý rằng, ví dụ này của mình chỉ là 1 ví dụ vô cùng đơn giản. ThymeLeaf thực tế còn mạnh hơn rất nhiều với việc cung cấp các cấu trúc lệnh for, if và gọi lệnh Java trong template. Bạn có thể tìm được rất nhiều các vi dụ và hướng dẫn trên internet

    Chia sẻ tin đăng đến bạn bè

    --- Bài cũ hơn ---

  • Cách Vẽ Biểu Đồ Trong Excel
  • Định Dạng Và In Ấn Trong Microsoft Excel
  • Cách Cố Định Hình Khối Chèn Trong Excel
  • Hướng Dẫn Về Cách Sử Dụng Sumifs (Hàm Sumifs) Trong Excel
  • Cách Sử Dụng Hàm Sumifs Trong Excel Đơn Giản
  • Web hay
  • Links hay
  • Push
  • Chủ đề top 10
  • Chủ đề top 20
  • Chủ đề top 30
  • Chủ đề top 40
  • Chủ đề top 50
  • Chủ đề top 60
  • Chủ đề top 70
  • Chủ đề top 80
  • Chủ đề top 90
  • Chủ đề top 100
  • Bài viết top 10
  • Bài viết top 20
  • Bài viết top 30
  • Bài viết top 40
  • Bài viết top 50
  • Bài viết top 60
  • Bài viết top 70
  • Bài viết top 80
  • Bài viết top 90
  • Bài viết top 100