Làm cách nào để đọc dữ liệu từ Excel trong PHP?

Chào mừng bạn đến với hướng dẫn nhanh về cách đọc và hiển thị tệp Excel trong HTML. Vì vậy, bạn có một báo cáo hoặc tệp nhật ký ở định dạng tệp Excel và muốn hiển thị nó trên một trang web HTML?

PHP không có hàm riêng để đọc tệp Excel. Chúng ta cần sử dụng một thư viện như PHPSpreadSheet để đọc các tệp Excel, sau đó xuất chúng dưới dạng HTML tương ứng

Có, và nó thực sự không khó lắm – Đọc tiếp để biết ví dụ

 

 

TLDR – TRANG TRÌNH BÀY NHANH

Tải xuống & Ghi chú

 

TẢI XUỐNG & LƯU Ý

Đầu tiên, đây là liên kết tải xuống mã ví dụ như đã hứa

 

GHI CHÚ NHANH

  • Bản sao của PHPSpreadSheet không được bao gồm trong tệp zip – Vui lòng tự tải xuống phiên bản mới nhất
Nếu bạn phát hiện ra một lỗi, hãy bình luận bên dưới. Tôi cũng cố gắng trả lời các câu hỏi ngắn, nhưng đó là một người so với cả thế giới… Nếu bạn cần câu trả lời gấp, vui lòng xem danh sách các trang web của tôi để được trợ giúp về lập trình

 

MÃ VÍ DỤ TẢI XUỐNG

Nhấp vào đây để tải xuống tất cả mã nguồn ví dụ, tôi đã phát hành nó theo giấy phép MIT, vì vậy hãy thoải mái xây dựng trên mã nguồn đó hoặc sử dụng nó trong dự án của riêng bạn

 

 

HIỂN THỊ PHP EXCEL NHƯ HTML

Bây giờ chúng ta hãy đi vào ví dụ đọc tệp Excel bằng PHP và xuất tệp đó bằng HTML

 

BƯỚC 1) TẢI XUỐNG PHPSPREADSHEET

Như trong phần giới thiệu ở trên, PHP không hỗ trợ định dạng tệp Excel nguyên bản. Chúng ta cần sử dụng thư viện PHPSpreadSheet để mở và đọc file Excel. Bạn có thể thực hiện thao tác lấy trực tiếp từ GitHub, nhưng cấu trúc thư mục của chúng là một bí ẩn và tôi cũng không thể hiểu cách thức hoạt động của nó… Vì vậy, cách dễ dàng hơn là

  • Tải xuống và cài đặt trình quản lý gói có tên Composer
  • Mở dấu nhắc lệnh (hoặc thiết bị đầu cuối) và điều hướng đến thư mục dự án của bạn cd YOUR-HTTP-FOLDER
  • Chạy composer require phpoffice/phpspreadsheet

Vậy là xong, Composer sẽ tự động download phiên bản PHPSpreadSheet mới nhất vào thư mục vendor/, và chúng ta có thể dễ dàng sử dụng với require "vendor/autoload.php"

 

BƯỚC 2) TẬP TIN EXCEL GIẢ

Đối với ví dụ này, chúng tôi sẽ sử dụng Excel giả đơn giản sau đây

TênEmailJoa Doejoa@doe. comJob Doejob@doe. comJoe Doejoe@doe. comJon Doejon@doe. comJoy Doejoy@doe. com

 

 

BƯỚC 3) ĐỌC EXCEL và XUẤT HTML

3-excel-html. php

<table><?php
// (A) PHPSPREADSHEET TO LOAD EXCEL FILE
require "vendor/autoload.php";
$reader = new \PhpOffice\PhpSpreadsheet\Reader\Xlsx();
$spreadsheet = $reader->load("2-demo.xlsx");
$worksheet = $spreadsheet->getActiveSheet();
 
// (B) LOOP THROUGH ROWS OF CURRENT WORKSHEET
foreach ($worksheet->getRowIterator() as $row) {
  // (B1) READ CELLS
  $cellIterator = $row->getCellIterator();
  $cellIterator->setIterateOnlyExistingCells(false);
 
  // (B2) OUTPUT HTML
  echo "<tr>";
  foreach ($cellIterator as $cell) { echo "<td>". $cell->getValue() ."</td>"; }
  echo "</tr>";
}
?></table>

Đó là tất cả những gì dành cho hướng dẫn và đây là một phần nhỏ về một số tính năng bổ sung và liên kết có thể hữu ích cho bạn

 

TẾ BÀO CÓ CÔNG THỨC

Hãy lưu ý rằng PHPSpreadsheet sẽ không đánh giá các công thức. Chỉ cần thực hiện "chuyển đổi công thức thành các giá trị được tính toán" trong Excel và lưu nó dưới dạng một bảng tính riêng trước

 

LIÊN KẾT và THAM KHẢO

  • Tài liệu PHPSpreadSheet

 

VIDEO HƯỚNG DẪN

 

BẢNG CHEAT INFOGRAPHIC

Cảm ơn bạn đã đọc, và chúng tôi đã đi đến cuối. Tôi hy vọng rằng nó đã giúp bạn hiểu rõ hơn và nếu bạn muốn chia sẻ bất cứ điều gì với hướng dẫn này, vui lòng bình luận bên dưới. Chúc may mắn và mã hóa hạnh phúc

Phân tích cú pháp và truy xuất dữ liệu từ tệp Excel XLSx. Sổ làm việc MS Excel 2007 Trình đọc PHP. Không cần tiện ích mở rộng bổ sung (giải nén nội bộ + trình phân tích cú pháp SimpleXML tiêu chuẩn)

Xem thêm
Trình đọc php định dạng cũ SimpleXLS MS Excel 97
Trình viết php SimpleXLSXGen xlsx

Này, anh bạn, làm ơn? . ) và donate để có thêm động lực

Serge Shuchkin

Sử dụng cơ bản

if ( $xlsx = SimpleXLSX::parse('book.xlsx') ) {
	print_r( $xlsx->rows() );
} else {
	echo SimpleXLSX::parseError();
}
Array
(
    [0] => Array
        (
            [0] => ISBN
            [1] => title
            [2] => author
            [3] => publisher
            [4] => ctry
        )

    [1] => Array
        (
            [0] => 618260307
            [1] => The Hobbit
            [2] => J. R. R. Tolkien
            [3] => Houghton Mifflin
            [4] => USA
        )

)
// SimpleXLSX::parse( $filename, $is_data = false, $debug = false ): SimpleXLSX (or false)
// SimpleXLSX::parseFile( $filename, $debug = false ): SimpleXLSX (or false)
// SimpleXLSX::parseData( $data, $debug = false ): SimpleXLSX (or false)

Cài đặt

Cách khuyến nghị để cài đặt thư viện này là thông qua Composer. Bạn mới sử dụng Trình soạn nhạc?

Điều này sẽ cài đặt phiên bản được hỗ trợ mới nhất

$ composer require shuchkin/simplexlsx

hoặc tải lớp tại đây

ví dụ

Bảng XLSX sang html

echo SimpleXLSX::parse('book.xlsx')->toHTML();

hoặc là

if ( $xlsx = SimpleXLSX::parse('book.xlsx') ) {
	echo '';
	foreach( $xlsx->rows() as $r ) {
		echo '';
	}
	echo ''.implode('', $r ).'';
} else {
	echo SimpleXLSX::parseError();
}

XLSX đọc ô, bỏ dấu phẩy và tiêu đề in đậm

echo '
';
if ( $xlsx = SimpleXLSX::parse( 'xlsx/books.xlsx' ) ) {
	foreach ( $xlsx->rows() as $r => $row ) {
		foreach ( $row as $c => $cell ) {
			echo ($c > 0) ? ', ' : '';
			echo ( $r === 0 ) ? ''.$cell.'' : $cell;
		}
		echo '
'; } } else { echo SimpleXLSX::parseError(); } echo '
';

XLSX lấy tên trang tính và chỉ mục trang tính

if ( $xlsx = SimpleXLSX::parse( 'xlsx/books.xlsx' ) ) {
	print_r( $xlsx->sheetNames() );
	print_r( $xlsx->sheetName( $xlsx->activeSheet ) );
}
// Sheet numeration started 0
Array
(
    [0] => Sheet1
    [1] => Sheet2
    [2] => Sheet3
)
Sheet2

Nhận thông tin ô mở rộng bằng ->rowsEx()

print_r( SimpleXLSX::parse('book.xlsx')->rowsEx() );
Array
(
    [0] => Array
        (
            [0] => ISBN
            [1] => title
            [2] => author
            [3] => publisher
            [4] => ctry
        )

    [1] => Array
        (
            [0] => 618260307
            [1] => The Hobbit
            [2] => J. R. R. Tolkien
            [3] => Houghton Mifflin
            [4] => USA
        )

)
0

Chọn trang tính

Array
(
    [0] => Array
        (
            [0] => ISBN
            [1] => title
            [2] => author
            [3] => publisher
            [4] => ctry
        )

    [1] => Array
        (
            [0] => 618260307
            [1] => The Hobbit
            [2] => J. R. R. Tolkien
            [3] => Houghton Mifflin
            [4] => USA
        )

)
1

Nhận trang tính theo chỉ mục

Array
(
    [0] => Array
        (
            [0] => ISBN
            [1] => title
            [2] => author
            [3] => publisher
            [4] => ctry
        )

    [1] => Array
        (
            [0] => 618260307
            [1] => The Hobbit
            [2] => J. R. R. Tolkien
            [3] => Houghton Mifflin
            [4] => USA
        )

)
2

XLSX. phân tích dữ liệu từ xa

Array
(
    [0] => Array
        (
            [0] => ISBN
            [1] => title
            [2] => author
            [3] => publisher
            [4] => ctry
        )

    [1] => Array
        (
            [0] => 618260307
            [1] => The Hobbit
            [2] => J. R. R. Tolkien
            [3] => Houghton Mifflin
            [4] => USA
        )

)
3

XLSX. phân tích dữ liệu bộ nhớ

Array
(
    [0] => Array
        (
            [0] => ISBN
            [1] => title
            [2] => author
            [3] => publisher
            [4] => ctry
        )

    [1] => Array
        (
            [0] => 618260307
            [1] => The Hobbit
            [2] => J. R. R. Tolkien
            [3] => Houghton Mifflin
            [4] => USA
        )

)
4

Nhận di động (chậm)

Array
(
    [0] => Array
        (
            [0] => ISBN
            [1] => title
            [2] => author
            [3] => publisher
            [4] => ctry
        )

    [1] => Array
        (
            [0] => 618260307
            [1] => The Hobbit
            [2] => J. R. R. Tolkien
            [3] => Houghton Mifflin
            [4] => USA
        )

)
5

Trình trợ giúp DateTime

Array
(
    [0] => Array
        (
            [0] => ISBN
            [1] => title
            [2] => author
            [3] => publisher
            [4] => ctry
        )

    [1] => Array
        (
            [0] => 618260307
            [1] => The Hobbit
            [2] => J. R. R. Tolkien
            [3] => Houghton Mifflin
            [4] => USA
        )

)
6

Các hàng có giá trị tiêu đề là khóa

Array
(
    [0] => Array
        (
            [0] => ISBN
            [1] => title
            [2] => author
            [3] => publisher
            [4] => ctry
        )

    [1] => Array
        (
            [0] => 618260307
            [1] => The Hobbit
            [2] => J. R. R. Tolkien
            [3] => Houghton Mifflin
            [4] => USA
        )

)
7
Array
(
    [0] => Array
        (
            [0] => ISBN
            [1] => title
            [2] => author
            [3] => publisher
            [4] => ctry
        )

    [1] => Array
        (
            [0] => 618260307
            [1] => The Hobbit
            [2] => J. R. R. Tolkien
            [3] => Houghton Mifflin
            [4] => USA
        )

)
8

gỡ lỗi

Array
(
    [0] => Array
        (
            [0] => ISBN
            [1] => title
            [2] => author
            [3] => publisher
            [4] => ctry
        )

    [1] => Array
        (
            [0] => 618260307
            [1] => The Hobbit
            [2] => J. R. R. Tolkien
            [3] => Houghton Mifflin
            [4] => USA
        )

)
9

Phong cách OOP cổ điển

// SimpleXLSX::parse( $filename, $is_data = false, $debug = false ): SimpleXLSX (or false)
// SimpleXLSX::parseFile( $filename, $debug = false ): SimpleXLSX (or false)
// SimpleXLSX::parseData( $data, $debug = false ): SimpleXLSX (or false)
0

Thêm ví dụ ở đây

Mã lỗi

Đơn giảnXLSX. ParseErrno(), $xlsx->errno()

codemessagecomment1File not foundTập tin ở đâu?

Làm cách nào để đọc tệp Excel trong php?

Đọc tệp Excel . Đọc tệp excel bằng hàm load() . Đây thử nghiệm. xlsx là tên tệp.

Làm cách nào để đọc dữ liệu từ tệp xlsx trong php?

Làm cách nào để kết nối Excel với php?

Thiết lập kết nối . Để đóng kết nối, hãy sử dụng odbc_close hoặc odbc_close_all. $conn = odbc_connect("Nguồn CData ODBC Excel","người dùng","mật khẩu"); . Open the connection to Excel by calling the odbc_connect or odbc_pconnect methods. To close connections, use odbc_close or odbc_close_all. $conn = odbc_connect("CData ODBC Excel Source","user","password"); Connections opened with odbc_connect are closed when the script ends.

Làm cách nào để đọc tệp Excel lớn trong php?

php Lớp ChunkReadFilter triển khai PHPExcel_Reader_IReadFilter { private $_startRow = 0;