Xuất excel API Laravel

Trong bài đăng này, tôi trình bày cách nhập và xuất dữ liệu tệp Excel số lượng lớn vào và từ ứng dụng Laravel bằng thư viện PhpSpreadsheet. PhpSpreadsheet là một thư viện PHP cung cấp hỗ trợ đọc và viết các loại định dạng tệp khác nhau như Excel, CSV, HTML, SpreadsheetML và LibreOffice Calc, trong số những định dạng khác.  

Trong phát triển web hiện đại, các nhà phát triển có xu hướng xây dựng dựa trên các hệ thống dựa trên dữ liệu bất cứ khi nào có nhu cầu nhập hoặc xuất dữ liệu, trong khi phân tích hoặc báo cáo về nó. Khi làm như vậy, hầu hết các ứng dụng sử dụng tệp CSV hoặc Excel cùng với cơ sở dữ liệu khi xử lý dữ liệu hàng loạt, vì điều này rõ ràng hiệu quả hơn so với nhập dữ liệu, từng mục một.  

điều kiện tiên quyết

Để tiếp tục với hướng dẫn này, bạn cần có một dự án Laravel hiện có hoặc cài đặt một thiết lập dự án mới. Nếu bạn chưa quen với Laravel, hãy làm theo các hướng dẫn này để cài đặt thiết lập dự án mới.

Bước 1 – Tạo bảng

Sau khi cài đặt thành công dự án Laravel, hãy tạo cơ sở dữ liệu và bảng. Chạy tập lệnh SQL sau trong môi trường cơ sở dữ liệu của bạn để tạo bảng ‘tbl_customer’ mà bạn có thể sử dụng để lưu trữ dữ liệu của mình.

--

-- Database: `mydata`

--




-- --------------------------------------------------------




--

-- Table structure for table `tbl_customer`

--




CREATE TABLE `tbl_customer` [

  `CustomerID` int[11] NOT NULL,

  `CustomerName` varchar[250] NOT NULL,

  `Gender` varchar[30] NOT NULL,

  `Address` text NOT NULL,

  `City` varchar[250] NOT NULL,

  `PostalCode` varchar[30] NOT NULL,

  `Country` varchar[100] NOT NULL

] ENGINE=MyISAM DEFAULT CHARSET=latin1;




--

-- Indexes for table `tbl_customer`

--

ALTER TABLE `tbl_customer`

  ADD PRIMARY KEY [`CustomerID`];




--

-- AUTO_INCREMENT for dumped tables

--




--

-- AUTO_INCREMENT for table `tbl_customer`

--

ALTER TABLE `tbl_customer`

  MODIFY `CustomerID` int[11] NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=155;

COMMIT;

 

Bước 2 – Tạo kết nối cơ sở dữ liệu Mysql trong Laravel

Để tạo kết nối cơ sở dữ liệu, hãy mở . ENV và xác định cấu hình cơ sở dữ liệu của bạn.

DB_CONNECTION=mysql

DB_HOST=localhost

DB_PORT=3306

DB_DATABASE=mydata

DB_USERNAME=root

DB_PASSWORD=

 

Bước 3. Cài đặt PhpSpreadsheet trong Laravel

Trong thư mục dự án của bạn, hãy chạy lệnh này trên thiết bị đầu cuối của bạn để cài đặt thư viện PhpSpreadsheet

composer require phpoffice/phpspreadsheet

Bước 4. Tạo tệp xem của bạn [chào mừng. lưỡi. php]

Bên trong thư mục resources/views , hãy tạo lời chào mừng. lưỡi. php chứa biểu mẫu để tải lên tệp excel, bảng để tải dữ liệu đã tải lên từ cơ sở dữ liệu, cũng như nút để xuất dữ liệu. Dán đoạn mã sau vào đây.






   PHPSpreadsheet in Laravel

   

   

   

   








   
       

Handling Excel Data using PHPSpreadsheet in Laravel

   
   
       
           
               
                   

Import Excel Data

               
               
                   @if [$message = Session::get['success']]                        
                           ×                            {{ $message }}                        
                       
                   @endif                                            @csrf                                                    Select File to Upload  {{__['Please upload only Excel [.xlsx or .xls] files']}}                            
                                                               @if [$errors->has['uploaded_file']]                                    

                                       {{ $errors->first['uploaded_file'] }}                                    

                               @endif                                
                                    Upload                                
                           
                                                           
           
       
   
   
       
           
           
               
                   

Customer Data Table

               
               
                   
                       Export Excel Data                    
                   
                                                                               Customer Name                            Gender                            Address                            City                            Postal Code                            Country                                                                                    @if[!empty[$data] && $data->count[]]                                @foreach[$data as $row]                                                                                                                                                                                                                                                                                                                                                        @endforeach                            @else                                                                                                                                @endif                                                    
{{ $row->CustomerName }}{{ $row->Gender }}{{ $row->Address }}{{ $row->City }}{{ $row->PostalCode }}{{ $row->Country }}
There are no data.
                       {!! $data->links[] !!}                    
               
           
       
   
               $[document].ready[function[] {            $['#example'].DataTable[];        } ];    

 

Bước 5. Tạo một bộ điều khiển [ExcelController. php]

Trong thư mục app/Http/Controllers , hãy tạo tệp bộ điều khiển [ ExcelController. php] nơi bạn có thể viết các hàm để tải tệp phiến và dữ liệu từ cơ sở dữ liệu, đồng thời nhập và xuất dữ liệu đã tải lên.

 

Để sử dụng thư viện Phpspreadsheet, bạn phải nhập các không gian tên bí danh của nó trong Bộ điều khiển. Trong trường hợp này, hãy nhập các lớp sau

use Illuminate\Http\Request;

use Illuminate\Support\Facades\DB;

use PhpOffice\PhpSpreadsheet\Spreadsheet;

use PhpOffice\PhpSpreadsheet\Reader\Exception;

use PhpOffice\PhpSpreadsheet\Writer\Xls;

use PhpOffice\PhpSpreadsheet\IOFactory;

Bạn cũng sẽ cần sử dụng các phương thức/chức năng sau bên trong bộ điều khiển.  

index[] – Đây là phương thức gốc của lớp trình điều khiển này. Bên trong hàm, hãy tạo truy vấn để tìm nạp dữ liệu từ tbl_customer , sẽ được tải trong welcome. lưỡi. php tệp, ở định dạng bảng. Nếu bảng cơ sở dữ liệu trống, bảng trên giao diện sẽ trống.

importData[] – Phương thức này có một biến yêu cầu chứa dữ liệu tệp excel đã tải lên. Bên trong hàm, xác thực định dạng tệp và kiểm tra xem nó có chứa dữ liệu bạn cần hay không, sau đó bạn có thể đọc dữ liệu chứa bằng gói PhpSpreadsheet. Thư viện PhpSpreadsheet sử dụng lớp IOFactory để tải dữ liệu excel và trích xuất từng hàng một thành một mảng PHP. Sử dụng  mảng để chèn dữ liệu đã trích xuất vào bảng tbl_customer . Sau khi nhập dữ liệu thành công, chuyển hướng trở lại trang chính, trả về thông báo thành công.

exportData[]- Phương thức này truy vấn bảng tbl_customer để tải dữ liệu khách hàng và sử dụng . Nó sẽ tải xuống tệp excel chứa dữ liệu trên PC cục bộ.

Chủ Đề