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. 20Trong 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, WithChunkReading0
{
use RemembersChunkOffset; public function model[array $row]
{
// You can get the current chunk offset
$this->getChunkOffset[];
}
public function chunkSize[]: int
{
return 50;
}
}
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, WithChunkReading1 và
{
use RemembersChunkOffset; public function model[array $row]
{
// You can get the current chunk offset
$this->getChunkOffset[];
}
public function chunkSize[]: int
{
return 50;
}
}
new UsersExport implements ToModel, WithChunkReading0 để bạn có thể thay đổi chúng theo ý thích của mình
{
use RemembersChunkOffset; public function model[array $row]
{
// You can get the current chunk offset
$this->getChunkOffset[];
}
public function chunkSize[]: int
{
return 50;
}
}
new UsersExport implements ToModel, WithChunkReading1 [Laravel 7. x]thay đổi
{
use RemembersChunkOffset; public function model[array $row]
{
// You can get the current chunk offset
$this->getChunkOffset[];
}
public function chunkSize[]: int
{
return 50;
}
}
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ỗiMộ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