Laravel nhập đoạn excel

Cách đây không lâu, chúng tôi đã kỷ niệm lượt tải xuống thứ 10 triệu của Laravel Excel và hôm nay là lúc để kỷ niệm một cột mốc mới. Laravel Excel đã đạt 20 triệu lượt tải xuống

Chúng tôi rất vui vì đã đạt được cột mốc quan trọng này và cảm ơn tất cả các bạn đã sử dụng gói của chúng tôi trong 6,5 năm qua. Chúc cho nhiều hàng hóa xuất nhập khẩu

Laravel Excel 3. 1. 20

Trong một tin tức khác, chúng tôi đã phát hành Laravel Excel 3. 1. 20 với một số cải tiến để chạy nhập trên Vapor và làm việc với số hàng, cùng với một số sửa lỗi và thay đổi. Bạn có thể tìm thấy một bài viết về bản phát hành mới này tại đây

Các tính năng mới

Đồng bộ hóa lại tệp tạm thời từ xa

Khi xử lý thiết lập nhiều máy chủ [và do đó sử dụng tệp tạm thời từ xa], việc dọn dẹp diễn ra sau khi toàn bộ hàng đợi đã được chạy để chỉ dọn dẹp máy chủ mà AfterImportJob cuối cùng chạy trên đó có thể xảy ra. Phần còn lại của máy chủ sẽ vẫn có tệp tạm thời cục bộ được lưu trữ trên đó. Trong trường hợp này, giới hạn bộ nhớ cục bộ của bạn có thể bị vượt quá và quá trình nhập trong tương lai sẽ không được xử lý [Đây đặc biệt là sự cố với Vapor]

Để giảm thiểu điều này, bạn có thể đặt cài đặt cấu hình mới [______8] thành true. Sau mỗi đoạn được xếp hàng đợi, tệp tạm thời cục bộ sẽ bị xóa trên máy chủ đã xử lý nó. Nếu không có cài đặt này, nó sẽ chỉ xảy ra khi kết thúc quá trình

Nhớ số hàng

Một đặc điểm mới đã được thêm vào giúp theo dõi số hàng hiện tại. Điều này có thể đặc biệt hữu ích khi xử lý mối quan tâm ToModel. Bạn có thể lấy số hàng hiện tại bằng cách sử dụng thuộc tính `$this->rowNumber`

new UsersExport implements ToModel
{
use RemembersRowNumber;
public function model[array $row]
{
// You can use the current row number.
$this->rowNumber;
}
}

Ghi phần bù chunk

Ngoài đặc điểm số hàng, một đặc điểm bù đoạn cũng được thêm vào. Nó theo dõi hàng bắt đầu của đoạn hiện tại. Điều này có thể đặc biệt hữu ích khi xử lý Nhập khẩu Chunked

new UsersExport implements ToModel, WithChunkReading
{
use RemembersChunkOffset;
public function model[array $row]
{
// You can get the current chunk offset
$this->getChunkOffset[];
}

public function chunkSize[]: int
{
return 50;
}
}

Mối quan tâm WithColumnLimit

Một bổ sung khác là mối quan tâm của WithColumnFilter, nó cho phép chỉ định một cột kết thúc. Điều này có thể hữu ích nếu bạn chỉ muốn đọc một phạm vi cột rất cụ thể

new UsersImport implements ToModel, WithColumnLimit
{
public function model[array $row]
{
// $row will only contain 2 columns [A & B]
}

public function endColumn[]: string
{
return 'B';
}
}

Mối quan tâm về WithReadFilter

Các bộ lọc đọc đằng sau hậu trường được sử dụng để đọc đoạn và mối quan tâm về giới hạn hàng. Trong một số trường hợp, bạn có thể muốn tự mình lọc hoặc bỏ qua các hàng. Bạn có thể làm ngay bây giờ bằng cách thực hiện mối quan tâm

new UsersExport implements ToModel, WithChunkReading
{
use RemembersChunkOffset;
public function model[array $row]
{
// You can get the current chunk offset
$this->getChunkOffset[];
}

public function chunkSize[]: int
{
return 50;
}
}
0

class CustomFilter implements IReadFilter
{
public function readCell[$column, $row, $worksheetName = '']
{
return $row < 10;
}
}

Trong xuất khẩu của bạn

new UsersExport implements WithReadFilter
{
public function readFilter[]: IReadFilter
{
return new CustomFilter[];
}
}

Xuất bản sơ khai

Bây giờ có thể xuất bản sơ khai được sử dụng khi sử dụng các lệnh

new UsersExport implements ToModel, WithChunkReading
{
use RemembersChunkOffset;
public function model[array $row]
{
// You can get the current chunk offset
$this->getChunkOffset[];
}

public function chunkSize[]: int
{
return 50;
}
}
1 và
new UsersExport implements ToModel, WithChunkReading
{
use RemembersChunkOffset;
public function model[array $row]
{
// You can get the current chunk offset
$this->getChunkOffset[];
}

public function chunkSize[]: int
{
return 50;
}
}
0 để bạn có thể thay đổi chúng theo ý thích của mình

new UsersExport implements ToModel, WithChunkReading
{
use RemembersChunkOffset;
public function model[array $row]
{
// You can get the current chunk offset
$this->getChunkOffset[];
}

public function chunkSize[]: int
{
return 50;
}
}
1 [Laravel 7. x]

thay đổi

Tương tác với các công việc được xếp hàng đợi

Đặc điểm InteractsWithQueue đã được thêm vào công việc ReadChunk. Đặc điểm này cho phép công việc được giải phóng trở lại hàng đợi, chẳng hạn như hữu ích nếu sử dụng nó với các phương thức phễu hoặc điều tiết trên mặt tiền Redis

Thử lại cho đến khi và phần mềm trung gian trên hàng đợi nhập khẩu

Có thể chỉ định phương thức thử lại cho đến khi thêm phần mềm trung gian vào quá trình nhập

class UsersExport implements ShouldQueue
{
public function retryUntil[]
{
return now[]->addSeconds[5];
}

public function middleware[]
{
return [
new RateLimited,
];
}
}

Thông tin thêm về phần mềm trung gian công việc có thể được tìm thấy trong tài liệu Laravel. https. // ấu trùng. com/docs/7. x/queues#job-middleware

Sử dụng WithValidation với FromCollection & FromArray

Bản phát hành này cũng đã thêm hỗ trợ để kết hợp những mối quan tâm đó và hoạt động theo cách tương tự như đối với Nhập mô hình

Đọc các bộ lọc cho WithLimit và HeadingRowImport

Mối quan tâm WithLimit và HeadingRowImport hiện sử dụng bộ lọc đọc, có nghĩa là giờ đây nó sẽ chỉ đọc các hàng cần thiết

Bump của phiên bản tối thiểu PhpSpreadsheet

Phiên bản tối thiểu của PhpSpreadsheet đã tăng lên 1. 14

Sửa lỗi

Một vài điều đã được sửa trong bản phát hành này

  • Đã sửa lỗi khối tài liệu của trình trợ giúp kiểm tra trên mặt tiền Excel
  • Sửa lỗi nhập với hàng bắt đầu ngoài hàng cao nhất
  • Đã sửa các sự kiện ` BeforeSheet` và ` AfterSheet` nhận phiên bản có thể xuất thay vì có thể nhập khi gọi Nhập
  • Khắc phục các liên kết giá trị không hoạt động trong xuất hàng đợi
  • Khắc phục sự cố khi sử dụng WithLimit khi có ít hàng hơn giới hạn
  • Khắc phục công việc AfterImport bị sa thải hai lần nếu không sử dụng hàng đợi
  • Phương thức Raw[] hiện cũng có sẵn trên Exportable
  • Sửa lỗi phá vỡ các thay đổi trong PhpSpreadsheet với các hộp trống

Xem nhật ký thay đổi đầy đủ tại đây. https. //github. com/Maatwebsite/Laravel-Excel/blob/3. 1/THIẾT KẾ THAY ĐỔI. md#3120---2020-07-22

Đọc thêm về gói tại. https. //laravel-excel. com/

Đừng quên gửi cho chúng tôi một tấm bưu thiếp về quê hương của bạn nếu bạn sử dụng Laravel Excel. Chúng tôi thích nhận chúng

Maatwebsite
Markt 2
6231 LS Meerssen
Hà Lan

Bạn cần trợ giúp tích hợp Laravel Excel hay bạn cần trợ giúp xây dựng ứng dụng Laravel? . Liên hệ với chúng tôi qua info@maatwebsite. nl hoặc qua điện thoại +31 [0]10 744 9312 để thảo luận về các khả năng

Làm cách nào để tải lên tệp excel lớn trong laravel?

Khi xử lý các tệp lớn, tốt hơn là nhập dữ liệu theo khối lớn. Bạn có thể kích hoạt tính năng này bằng filter['chunk'] ; . Tham số đầu tiên là kích thước của chunk. Tham số thứ hai là một bao đóng sẽ trả về kết quả. To import it into chunks you can use chunk[$size, $callback] instead of the normal get[] . The first parameter is the size of the chunk. The second parameter is a closure which will return the results.

Làm cách nào để sử dụng excel nhanh trong laravel?

Gói Excel nhanh cho Laravel .
sử dụng Rap2hpoutre\FastExcel\FastExcel;
sử dụng Ứng dụng\Người dùng;
$users = Người dùng. tất cả các[];
[FastExcel mới[$users]]->xuất['tệp. xlsx'];
$list = thu thập[[
[ 'id' => 1, 'name' => 'Jane' ],
[ 'id' => 2, 'tên' => 'John' ],
[FastExcel mới[$list]]->xuất['tệp. xlsx'];

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

Để nhập tệp excel, tôi đang sử dụng Laravel Excel. .
Bước 1 - Cài đặt. Để cài đặt Gói Laravel Excel thông qua lệnh chạy trình soạn thảo bên dưới. .
Bước 2 - Tạo Lớp nhập bên trong ứng dụng/Nhập. Tạo lớp nhập bằng cách sử dụng lệnh artisan. .
Bước 3 - Cập nhật lớp UsersImport. .
Bước 4 - Xử lý tệp Excel/CSV đã tải lên

Chủ Đề