Cách đọc ghi file excel trong php

Lớp này hữu ích cho kích thước tệp excel vừa và nhỏ (vài MB), vì nó đọc toàn bộ bảng tính cùng một lúc và nếu bạn có một bảng tính lớn, bộ nhớ sẽ cạn kiệt. Trong trường hợp này, tốt hơn là chuyển đổi dữ liệu excel sang định dạng CSV, sau đó sử dụng nó trong PHP

Lớp PhpExcelReader lưu trữ dữ liệu tệp excel thành một mảng nhiều chiều, trong thuộc tính $sheets, được truy cập bằng.
$objectClass->sheets
- $objectClass là thể hiện đối tượng của lớp

Ví dụ như bảng excel này

Cách đọc ghi file excel trong php

Để đọc tệp excel này bằng lớp PhpExcelReader, hãy sử dụng mã này

____1'; .
array (
 0 => array (
 'maxrow' => 0,
 'maxcol' => 0,
 'numRows' => 8,
 'numCols' => 4,
 'cells' => array (
 2 => array ( 2 => 'Web sites data' ),
 4 => array (
 1 => 'Title',
 2 => 'Url',
 3 => 'Visitors',
 4 => 'Accesses'
 ),
 5 => array (
 1 => 'Web Programming Courses',
 2 => 'https://coursesweb.net/',
 3 => '5000',
 4 => '9800'
 ),
 6 => array (
 1 => 'Courses Games and Anime',
 2 => 'https://marplo.net/',
 3 => '6000',
 4 => '22000'
 ),
 7 => array (
 1 => 'PHP: Hypertext Processor',
 2 => 'http://php.net/',
 3 => '30000',
 4 => '92000'
 ),
 8 => array (
 1 => 'Yahoo!',
 2 => 'http://yahoo.com/',
 3 => '100000',
 4 => '650000'
 ),
 ),
 'cellsInfo' => array (
 5 => array (
 3 => array (
 'raw' => 5000,
 'type' => 'unknown'
 ),
 4 => array (
 'raw' => 9800,
 'type' => 'unknown'
 ),
 ),
 6 => array (
 3 => array (
 'raw' => 6000,
 'type' => 'unknown'
 ),
 4 => array (
 'raw' => 22000,
 'type' => 'unknown'
 ),
 ),
 7 => array (
 3 => array (
 'raw' => 30000,
 'type' => 'unknown'
 ),
 4 => array (
 'raw' => 92000,
 'type' => 'unknown'
 ),
 ),
 8 => array (
 3 => array (
 'raw' => 100000,
 'type' => 'unknown'
 ),
 4 => array (
 'raw' => 650000,
 'type' => 'unknown'
 ),
 ),
 2 => array (
 2 => array ( 'colspan' => 3 ),
 ),
 ),
 )
)
- $excel->sheets[0]['numRows'] chứa số hàng có dữ liệu trong trang tính đầu tiên.
- $excel->sheets[0]['numCols'] chứa số cột có dữ liệu trong sheet đầu tiên.
- $excel->sheets[0] chứa mảng nhiều chiều với dữ liệu của sheet đầu tiên trong file excel. Dữ liệu được lưu trữ trong 'ô' và siêu dữ liệu được lưu trữ trong một mảng có tên là 'cellsInfo'.
$sheets[index] --> 'cells' --> row --> column --> Interpreted value
 --> 'cellsInfo' --> row --> column --> 'type' (Can be 'date', 'number', or 'unknown')
 --> 'raw' (The raw data that Excel stores for that data cell)

- $objectClass->boundsheets[index_sheet]['name'] chứa tên của trang tính excel có thứ tự chỉ mục là "index_sheet".

Bạn có thể duyệt qua mảng $objectClass->sheets để thêm dữ liệu vào bảng HTML

- Dưới đây là ví dụ tạo và xuất bảng HTML với dữ liệu excel từ mỗi sheet

read('test.xls');

// this function creates and returns a HTML table with excel rows and columns data
// Parameter - array with excel worksheet data
function sheetData($sheet) {
 $re = ''; // starts html table

 $x = 1;
 while($x <= $sheet['numRows']) {
 $re .= "\n";
 $y = 1;
 while($y <= $sheet['numCols']) {
 $cell = isset($sheet['cells'][$x][$y]) ? $sheet['cells'][$x][$y] : '';
 $re .= " \n"; 
 $y++;
 } 
 $re .= "\n";
 $x++;
 }

 return $re .'$cell'; // ends and returns the html table
}

$nr_sheets = count($excel->sheets); // gets the number of worksheets
$excel_data = ''; // to store the the html tables with data of each sheet

// traverses the number of sheets and sets html table with each sheet data in $excel_data
for($i=0; $i<$nr_sheets; $i++) {
 $excel_data .= '

Sheet '. ($i + 1) .' ('. $excel->boundsheets[$i]['name'] .')

'. sheetData($excel->sheets[$i]) .'
'; } echo $excel_data; // outputs HTML tables with excel file data

- Trong kho lưu trữ với lớp PhpExcelReader, bạn sẽ tìm thấy một "bài kiểm tra. xls" để kiểm tra và hai ví dụ và nhận xét có chi tiết trong mã.
• Lớp này là phiên bản dành cho PHP 5. 3+ của lớp Spreadsheet_Excel_Reader, từ. Trang web PHP-ExcelReader.

hộp đá quý. Bảng tính là một. NET cho phép bạn xử lý các tệp Excel từ bất kỳ. ứng dụng NET. Nhưng nó cũng là một thư viện có thể truy cập COM mà bạn cũng có thể sử dụng trong PHP

yêu cầu hệ thống

Để sử dụng GemBox. bảng tính trong PHP, bạn sẽ cần phải

  1. Tải xuống và cài đặt GemBox. Thiết lập bảng tính
  2. lộ hộp đá quý. Bảng tính sang COM Tương tác với Regasm. công cụ exe.
    :: Add GemBox.Spreadsheet to COM registry for x86 (32-bit) applications.
    C:\Windows\Microsoft.NET\Framework\v4.0.30319\RegAsm.exe [path to installed GemBox.Spreadsheet.dll]
    
    :: Add GemBox.Spreadsheet to COM registry for x64 (64-bit) applications.
    C:\Windows\Microsoft.NET\Framework64\v4.0.30319\RegAsm.exe [path to installed GemBox.Spreadsheet.dll]

Làm việc với các tệp Excel trong PHP

Ví dụ sau đây cho thấy cách bạn có thể tạo một tệp Excel mới từ PHP và ghi một số dữ liệu bảng tính vào các ô của nó. Ngoài ra, ví dụ này cho thấy cách bạn có thể đọc tệp Excel hiện có và cập nhật các ô của nó

Cách đọc ghi file excel trong php
Ảnh chụp màn hình của tệp Excel mới được tạo và cập nhật sau đó

  • PHP
Sao chép Xem trên GitHub

ComSetLicense("FREE-LIMITED-KEY");

 /********************
  *** Create Excel ***
  ********************/

  // Create new ExcelFile object.
  $workbook = new Com("GemBox.Spreadsheet.ExcelFile", null, CP_UTF8);
  // Add new ExcelWorksheet object.
  $worksheet = $workbook->Worksheets->Add("Sheet1");

  // Set width and format of column "A".
  $columnA = $comHelper->GetColumn($worksheet, 0);
  $columnA->Width = 20 * 256;
  $columnA->Style->Font->Weight = 700;

  // Set values of cells "A1", "A2", "A3" and "A4".
  $columnA->Cells->Item(0)->Value = "John Doe";
  $columnA->Cells->Item(1)->Value = "Bob Garvey";
  $columnA->Cells->Item(2)->Value = "Ben Stilwell";
  $columnA->Cells->Item(3)->Value = "Peter Pan";
  
  // Set values of cells "B1", "B2", "B3" and "B4".
  $columnB = $comHelper->GetColumn($worksheet, 1);
  $columnB->Cells->Item(0)->Value = 1000;
  $columnB->Cells->Item(1)->Value = 2000;
  $columnB->Cells->Item(2)->Value = 3000;
  $columnB->Cells->Item(3)->Value = 4000;

  // Create new Excel file.
  $workbook->Save(getcwd() . "\\New.xlsx");

 /******************
  *** Read Excel ***
  ******************/

  // Read existing Excel file.
  $book = $comHelper->Load(getcwd() . "\\New.xlsx");
  // Get first Excel sheet.
  $sheet = $book->Worksheets->Item(0);
  // Get first Excel row.
  $row1 = $comHelper->GetRow(sheet, 0);

  // Display values of cells "A1" and "B1".
  echo "Cell A1:" . $row1->Cells->Item(0)->Value;
  echo "
"; echo "Cell B1:" . $row1->Cells->Item(1)->Value; /******************** *** Update Excel *** ********************/ // Update values of cells "A1" and "B1". $row1->Cells->Item(0)->Value = "Jane Doe"; $row1->Cells->Item(1)->Value = 2000; // Write the updated Excel file. $book.Save(getcwd() . "\\Updated.xlsx"); ?>

Thư viện trình bao bọc

Không phải tất cả thành viên của GemBox. Có thể truy cập bảng tính do các giới hạn COM như các phương thức quá tải và tĩnh không được hỗ trợ. Đó là lý do tại sao bạn có thể sử dụng lớp ComHelper cung cấp các lựa chọn thay thế cho một số thành viên không thể được gọi bằng COM Interop

Tuy nhiên nếu bạn có nhu cầu sử dụng nhiều GemBox. thành viên bảng tính từ PHP, một cách tiếp cận được khuyến nghị là tạo một. NET wrapper thư viện thay thế. Thư viện trình bao bọc của bạn sẽ thực hiện tất cả công việc bên trong và hiển thị một tập hợp tối thiểu các lớp và phương thức cho mã không được quản lý

Điều này sẽ cho phép bạn tận dụng GemBox. Khả năng đầy đủ của bảng tính, tránh mọi giới hạn COM và cải thiện hiệu suất bằng cách giảm số lượng Trình bao bọc có thể gọi COM được tạo trong thời gian chạy

Xem thêm

Cách đọc ghi file excel trong php

Tạo, đọc, ghi tệp Excel từ Python


Bước tiếp theo

hộp đá quý. Bảng tính là một. NET cho phép bạn đọc, viết, chỉnh sửa, chuyển đổi và in các tệp bảng tính từ. NET sử dụng một API đơn giản

Chúng tôi có thể đọc tệp Excel trong PHP không?

PhpSpreadsheet là một thư viện được viết bằng PHP thuần túy và cung cấp một tập hợp các lớp cho phép bạn đọc và viết các định dạng tệp bảng tính khác nhau như Excel và LibreOffice Calc . Trong hướng dẫn này, chúng ta sẽ học cách đọc và ghi tệp xlsx. Bạn có thể tích hợp nó với cơ sở dữ liệu của mình nếu cần.

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

Xuất dữ liệu PHP sang. .
BƯỚC 1. Tạo Array để lưu trữ dữ liệu. .
BƯỚC 2. Tạo hàm lọc dữ liệu. .
BƯỚC 3. Xác định tên tệp và tiêu đề nội dung để tải xuống. .
BƯỚC 4. Xác định Vòng lặp qua từng hàng trong $customers_data. .
BƯỚC 5. Chạy tập lệnh trong môi trường của bạn

Làm cách nào để mở tệp xlsx trong PHP?

PHPSpreadsheet là gì?

Giới thiệu. PHPSpreadsheet là một thư viện được viết bằng PHP giúp đọc và ghi vào các loại định dạng tệp bảng tính khác nhau với sự trợ giúp của một nhóm lớp nhất định . Các định dạng khác nhau hỗ trợ bảng tính là Excel (. xlsx), Định dạng Tài liệu Mở(. ods),Bảng tínhML(. xml), CSV và nhiều hơn nữa.