PHPExcel có bị phản đối không?

kể từ PHP 7. Phương thức 4 dấu ngoặc nhọn để nhận các ký tự riêng lẻ bên trong một chuỗi không được dùng nữa, vì vậy hãy thay đổi cú pháp trên thành cú pháp này

$str = "test";
echo[$str[0]];

Trình bắt đầu chủ đề paka

[@paka]

Xin chào và cảm ơn vì câu trả lời
Tôi biết nguyên nhân gây ra cảnh báo. Câu hỏi đặt ra là khi nào nó sẽ được khắc phục và có lẽ tại sao nó không xảy ra cách đây 4 tuần mà là hôm nay. Tôi không thể nhớ, nâng cấp php từ đó

Xin chào và chào buổi tối

Tác giả plugin wpDataTables

[@wpdatatables]

Chào pác,

Có, nó sẽ được sửa trong bản cập nhật tiếp theo

Chúng tôi không chắc tại sao nó không xảy ra 4 tuần trước nếu bạn cập nhật phiên bản PHP trên 7. 4 vì những lỗi đó chỉ có thể xảy ra nếu bạn đã cài đặt phiên bản này trên máy chủ

Nếu bạn đang sử dụng PHP 7. 4 cho trang web của bạn với jDBexport, chúng tôi đã tạo một bản vá cho bạn để tránh các thông báo không dùng nữa này

1] tải xuống bản vá này và giải nén nó
2] tải nội dung của bản vá này lên máy chủ của bạn vào thư mục JOOMLAROOT/components/com_jdbexport/helpers

Nếu bạn hiện không sử dụng PHP 7. 4, bạn không cần làm gì cả [dù sao thì bản vá này cũng sẽ có trong phiên bản jDBexport tiếp theo

Nói về bản phát hành tiếp theo của chúng tôi
jDBexport 4. 0. 3 hiện đang được phát triển. Cần có sự thay đổi đáng kể để làm cho thành phần hoạt động với Joomla 4, nhưng chúng tôi sẽ sẵn sàng khi Joomla mới này đạt đến trạng thái "ổn định"

jDBexport 4. 0. 3 cũng sẽ là jDBexport cuối cùng hỗ trợ thư viện kế thừa PHPexcel [thư viện này sẽ bị xóa sau jDBexport 4. 0. 3, vì vậy bạn có thể muốn chuẩn bị và kiểm tra sổ làm việc của mình với thư viện PhpSpreadsheet mới [và cho chúng tôi biết nếu bạn thực sự tìm thấy bất kỳ vấn đề nào]

PHPSpreadsheet là người theo dõi trực tiếp PHPExcel với cùng những người bảo trì, chỉ với hàng chục lần ngắt BC. Có hướng dẫn di chuyển chính thức mô tả từng bước 24 thay đổi khác nhau mà bạn cần thực hiện

Chỉ 1 trong số những thay đổi đó - đổi tên lớp - được tự động hóa với. Biểu thức chính quy không phải là điều tốt nhất để sử dụng để sửa đổi mã, ngược lại

Nhưng cũng có các cuộc gọi phương thức bổ sung

-$worksheet->getDefaultStyle[];
+$worksheet->getParent[]->getDefaultStyle[];

Đổi tên cuộc gọi phương thức

-$worksheet->setSharedStyle[$sharedStyle, $range];
+$worksheet->duplicateStyle[$sharedStyle, $range];

Chuyển đổi đối số và gọi phương thức bổ sung

-$cell = $worksheet->setCellValue['A1', 'value', true];
+$cell = $worksheet->getCell['A1']->setValue['value'];

Phương thức chuyển sang lớp khác

-PHPExcel_Cell::absoluteCoordinate[]
+PhpOffice\PhpSpreadsheet\Cell\Coordinate::absoluteCoordinate[]

và như thế

Hầu hết mọi người sử dụng PHPExcel trong quá khứ và không động đến mã kể từ đó. Nếu nó hoạt động, tại sao phải chạm vào nó, phải không?

Đó là lý do tại sao trong 3 năm qua, tốc độ tải xuống giảm rất tệ - từ ~25 000 lượt tải xuống hàng ngày xuống còn ~20 000 lượt tải xuống hàng ngày

Chúng tôi cần Migration - Nhanh chóng

Chúng tôi tham gia một dự án sử dụng PHPExcel và muốn chuyển sang PHP 7. 4 và Symfony 5. Nâng cấp PHP và di chuyển khung là một nửa công việc. Nửa còn lại là những gói nhỏ này, nhà cung cấp đó khóa dự án của bạn với PHP cũ hoặc một phụ thuộc cũ khác

Ngoài câu trả lời của Mark Baker ở trên, có rất nhiều thay đổi về kiến ​​trúc và cú pháp đối với cách sử dụng thư viện PhpSpreadsheet mới

Đầu tiên, lưu ý rằng có một công cụ di chuyển đi kèm thực hiện nhiều thay đổi cú pháp từ PhpExcel -to- PhpSpreadsheet cho bạn

 

Tóm tắt không đầy đủ các thay đổi

[1] Thay đổi quan trọng nhất. PhpSpreadsheet phụ thuộc vào Composer được cài đặt

Được lấy cảm hứng mạnh mẽ từ npm của nút và gói của ruby, Composer không phải là trình quản lý gói theo nghĩa giống như Yum hoặc Apt. Mặc dù nó xử lý các "gói" và/hoặc thư viện, nhưng nó là trình quản lý phụ thuộc thuần túy hơn, vì nó quản lý các phụ thuộc trên cơ sở từng dự án, cài đặt chúng trong một thư mục [thường có tên là "nhà cung cấp"] bên trong dự án của bạn. Theo mặc định, nó không cài đặt bất cứ thứ gì trên toàn cầu. [Tuy nhiên, nó hỗ trợ một dự án "toàn cầu" để thuận tiện thông qua lệnh toàn cầu. ]

Có thể sử dụng PhpSpreadsheet mà không cần Trình soạn thảo và đây là một số suy nghĩ về cách thực hiện điều đó. Dưới đây là nhiều suy nghĩ trực tiếp từ các chuyên gia về cùng chủ đề này

FWIW, tôi đã mở một vé với máy chủ web của mình và trong 10 phút nhận được phản hồi rằng Trình soạn thảo đã được cài đặt trên dịch vụ lưu trữ được chia sẻ của chúng tôi [Gói xanh, dành cho những người thắc mắc]. Không nói rằng bạn sẽ gặp may mắn như vậy, nhưng có lẽ thông tin giai thoại sẽ hữu ích. Đáng để thử với máy chủ web của bạn

[2] Không gian tên đã được giới thiệu

Phần mã của PhpSpreadsheet cũng đã phát triển kể từ PhpExcel. Trong khi lớp điểm vào của PhpExcel - Classes/PHPExcel. php - phản ánh trùng tên của nó, PhpSpreadsheet bao gồm tính năng tự động tải. php trong thư mục gốc của thư mục nhà cung cấp. Nó cũng sử dụng một số không gian tên để đơn giản hóa mã hóa

Các phương thức

[3] Readers and writers were renamed

[4] Reader/Writer short names were changed, significantly. For example:

________1

Did you make note that the first letter is capitalized? Required.

[5] IOFactory methods were simplified:

________2

For example,

________3

[6] Other Changes/Deprecations:

________4

[7] The class PHPExcel_Autoloader was removed entirely and is replaced by composer autoloading mechanism.

[8] PDF libraries must be installed via composer. The PHPExcel_Settings::get/setPdfRenderer[] đã bị xóa và được thay thế bằng IOFactory. registerWriter[] thay vì

[9] Khi hiển thị biểu đồ cho đầu ra HTML hoặc PDF, quy trình cũng được đơn giản hóa. Và mặc dù hỗ trợ JpGraph vẫn khả dụng, rất tiếc là nó không được cập nhật cho các phiên bản PHP mới nhất và nó sẽ tạo ra nhiều cảnh báo khác nhau

[10] Hỗ trợ cho PclZip đã bị loại bỏ để hỗ trợ tiện ích mở rộng PHP hiện đại và hoàn thiện hơn ZipArchive. Rất nhiều thay đổi đối với các lớp đó

[11] Bộ nhớ đệm di động đã được tái cấu trúc mạnh mẽ để tận dụng PSR-16. Điều đó có nghĩa là hầu hết các lớp liên quan đến tính năng đó đã bị xóa

[12] Các phím mảng được sử dụng để tạo kiểu đã được chuẩn hóa để có trải nghiệm mạch lạc hơn. Bây giờ nó sử dụng cùng một từ và cách viết hoa như getter và setter

[13] Các phương thức thao tác tọa độ trong PHPExcel_Cell đã được trích xuất thành một lớp mới chuyên dụng \PhpOffice\PhpSpreadsheet\Cell\Coordinate. Các phương pháp bao gồm

absoluteCoordinate[]
absoluteReference[]
columnIndexFromString[]
coordinateFromString[]
buildRange[]
.. and half-a-dozen more ...

[14] Chỉ mục cột hiện dựa trên 1. Vậy cột A là chỉ số 1. Điều này phù hợp với các hàng bắt đầu từ 1 và hàm Excel COLUMN[] trả về 1 cho cột A

[15] Các giá trị mặc định cho nhiều phương thức đã bị xóa khi không hợp lý. Thông thường, các phương thức setter không nên có giá trị mặc định

[16] Bỏ ô trả về có điều kiện. Không còn có thể thay đổi loại giá trị trả về. Nó luôn trả về Bảng tính và không bao giờ trả về Ô hoặc Quy tắc, trong các phương thức như.

'Excel2003XML' ==> 'Xml' *the leading capital letter is mandatory !*
'Excel2007'    ==> 'Xlsx'
'Excel5'       ==> 'Xls'
'HTML'         ==> 'Html'
'CSV'          ==> 'Csv'   etc.
0,
'Excel2003XML' ==> 'Xml' *the leading capital letter is mandatory !*
'Excel2007'    ==> 'Xlsx'
'Excel5'       ==> 'Xls'
'HTML'         ==> 'Html'
'CSV'          ==> 'Csv'   etc.
1, v.v. cho e. g

Tại sao PHPExcel không cho phép viết hơn 5000 hàng?

Gần như chắc chắn đây là thời gian chờ hoặc sự cố bộ nhớ . Giới hạn PHPExcel duy nhất cho kích thước trang tính là 65.536 hàng và 256 [IV] cột [khi sử dụng Excel5 Writer]; . Đảm bảo rằng ghi nhật ký lỗi của bạn luôn được bật.

PHP Excel là gì?

PHP cung cấp thư viện để xử lý các tệp Excel . Nó được gọi là thư viện PHP Excel. Nó cho phép bạn đọc và viết bảng tính ở nhiều định dạng khác nhau bao gồm csv, xls, ods và xlsx.

Làm cách nào tôi có thể tải xuống tệp Excel từ PHPExcel?

Xuất dữ liệu sang Excel bằng PHP .
Biến $fileName xác định tên của tệp excel
Các tiêu đề Bố trí nội dung và Loại nội dung buộc tải xuống tệp excel
Chạy vòng lặp qua từng cặp khóa/giá trị trong mảng $data
Hiển thị tên cột dưới dạng hàng đầu tiên bằng cách sử dụng biến $flag

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

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

Chủ Đề