Sau khi tải một đối tượng PHPExcel với dữ liệu của tôi, tôi muốn xuất nội dung trực tiếp vào một biến php, thay vì ghi vào một tệp. Tôi đã bỏ lỡ phương pháp để làm điều đó, vì có vẻ như cách duy nhất để tiết kiệm là lưu vào đĩa.Làm cách nào để viết bảng tính excel của tôi thành biến, sử dụng PhpExcel?
Trả lời
Bạn có thể sử dụng trình ghi để lưu vào đĩa hoặc lưu vào php: // đầu ra. Nếu sau này, bạn có thể sử dụng đầu ra đệm để nắm bắt đầu ra đó và sau đó lưu trữ trong một biến .... không chắc chắn khá lý do tại sao bạn muốn làm điều này mặc dù.
$objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel2007');
ob_start();
$objWriter->save('php://output');
$excelOutput = ob_get_clean();
Kể từ PHPExcel viết các tập tin vào đĩa trong mọi trường hợp, nếu bạn chụp stdout, những gì xảy ra trong nội bộ là các tập tin được ghi vào đĩa, sau đó đọc từ đĩa (và xóa), in để stdout và sau đó bị bắt trong bộ đệm đầu ra.
Bạn cũng có thể làm:
$tmpfile = tempnam($tmp_dir, 'phpxltmp');
$objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel2007');
$objWriter->save($tmpfile);
$excelOutput = file_get_contents($tmpfile);
unlink($tmpfile);
Đây là loại cảm giác thông thường về cách người ta có thể tiếp cận điều này, nhưng có rất nhiều nhược điểm cho phương pháp này .. Việc tạo/sử dụng đĩa của bạn đòi hỏi nhiều hoạt động/thời gian/không gian hơn. Nếu tập lệnh này chạy trong nhiều phiên bản hoặc chồng chéo, bạn cần phải tạo một tệp khác nhau cho mỗi phiên bản. Điều này có thể dẫn đến các vấn đề tham nhũng/acess. OP đã nói trực tiếp với một biến, chứ không phải cho một tệp, sau đó đến một biến. – Mayhem
Câu trả lời đã giải quyết những nhược điểm này. 'tempnam' tạo ra một tệp khác nhau cho mỗi cá thể và vì PHPExcel sử dụng một tệp trong mọi trường hợp, đó là cách tiếp cận" thẳng đến biến "rõ ràng là hiệu quả kém hơn của cả hai. Trong nhiều trường hợp, có thể sử dụng 'readfile' hoặc xử lý luồng để tránh các vấn đề bộ nhớ và tăng thêm hiệu suất. Trong khi câu trả lời được chấp nhận dường như đơn giản hơn, điều đó có giá trị trong chính nó, tôi vẫn cảm thấy rằng * điều này * phải là câu trả lời được chấp nhận, hoặc một sự thay thế đáng tin cậy. – LSerni
- 1. Làm cách nào để mở tệp Excel bằng PHPExcel cho cả đọc và viết?
- 2. Tôi có thể tham gia tài liệu Excel bằng cách sử dụng PHPExcel như thế nào?
- 3. Đọc một bảng XLSX để nạp một bảng MySQL bằng cách sử dụng PHPExcel
- 4. sử dụng C# để chọn một bảng tính trong excel
- 5. Làm thế nào để sử dụng NPOI để đọc bảng tính Excel có chứa ô trống?
- 6. Lưu Bảng tính Excel bằng cách sử dụng Interop C#
- 7. Truy vấn bảng tính excel của tôi với VBA
- 8. Làm cách nào để ngăn Excel hiển thị bảng tính khi macro của tôi tính toán nó?
- 9. PHPExcel viết-on-the-fly?
- 10. Excel tiếp tục tải bảng tính của tôi với lỗi
- 11. PHP: Biến bảng HTML thành bảng tính?
- 12. Sử dụng PHPExcel để xuất sang xlsx
- 13. Làm cách nào để sử dụng DomainContext.Load để điền các thuộc tính của ViewModel của tôi?
- 14. Làm thế nào để xóa bảng tính excel khỏi sổ làm việc excel trong C#?
- 15. Làm cách nào để thay đổi tên trang tính từ C# trên bảng tính Excel
- 16. Làm thế nào để có được số dòng trong bảng excel bằng cách sử dụng python?
- 17. C#: Làm cách nào để xuất sang bảng tính excel? sử dụng XSLT/LINQ/Các phương pháp khác?
- 18. Làm cách nào để ghi vào bảng tính Excel bằng LINQ?
- 19. Sử dụng PHPExcel để tạo các tệp excel được tạo tự động
- 20. Làm cách nào để đánh dấu các trường được tính toán trong bảng tính Excel?
- 21. Cách viết bộ sưu tập VBA vào trang tính Excel
- 22. Sao chép Bảng Excel bằng cách sử dụng Apache POI
- 23. các bước để tạo bảng tính XML excel bằng cách sử dụng C#
- 24. Làm cách nào để tôi sử dụng thuộc tính/biến của lớp làm tệp có tay in trong Perl?
- 25. Làm thế nào để xuất dữ liệu từ bảng tính Excel to SQL Server 2008 bảng
- 26. Nhập dữ liệu bảng tính Excel vào một bảng tính Excel khác có chứa VBA
- 27. Nhận tên trang tính Excel và sử dụng làm biến trong macro
- 28. Cách lấy hơn 255 cột trong bảng tính excel bằng cách sử dụng Apache POI 3.6
- 29. Kết hợp các bảng tính excel vào một bảng tính
- 30. Tôi làm cách nào để sử dụng JavaScript trong macro Excel?
Cảm ơn. Nếu tôi đang sử dụng điều này bên trong một khung công tác như symfony, tôi có thể cần truyền nội dung xung quanh từ một dịch vụ excel đến một số loại dịch vụ hoặc bộ điều khiển xuất ra. Tôi thà tránh việc ghi vào đĩa. – Aaron
Bạn nhận ra rằng nó có thể là cực kỳ bộ nhớ đói, giữ toàn bộ tập tin trong bộ nhớ PHP –
Một câu hỏi công bằng. Cảm ơn vì lời khuyên. – Aaron