PHP الكمثرى Spreadsheet_Excel_Writer إرسال ملف فارغ
-
11-07-2019 - |
سؤال
وقد أي شخص يستخدم الكمثرى:Spreadsheet_Excel_Writer?
على التنسيق التعليمي قوائم سيناريو مشابه لما أنا أعمل مع:(قلصت إلى أسفل)
<?php
require_once 'Spreadsheet/Excel/Writer.php';
$workbook = new Spreadsheet_Excel_Writer();
$worksheet =& $workbook->addWorksheet();
$worksheet->write(0, 0, "Quarterly Profits for Dotcom.Com");
$workbook->send('test.xls');
$workbook->close();
?>
ما أعتقد أنني أفهم حتى الآن حول هذا الموضوع...
$workbook->send('test.xls');
يحدد رؤوس تصل لـ Excel نقل الملفات.الآن لا يبدو من الأخطاء الدخول ولكن الملف الذي تم تنزيله هو فارغة تماما (حتى في محرر عرافة).
لذا...
حيث (في أي صف/طريقة) ، $workbook
ثنائي من المفترض أن تكون مكتوبة ؟ أو هل أنا سوء الفهم ؟
ملاحظة:أنا بصراحة لا أعرف ما هو إصدار Spreadsheet_Excel_Writer هي المستخدمة ؛ مصادر لا تشمل مثل هذه المعلومات المفيدة.
أستطيع أن أقول لك حقوق الطبع والنشر 2002-2003;لذا, في أي مكان الإصدار 0.1 0.6.
[تحرير] آسف اعتقدت أني ذكرت هذا في مكان ما..هذا هو شخص آخر السيناريو الذي تم تعييني في الإصلاح.
المحلول
هنا بعض التعليمات البرمجية:
<?php
require_once 'Spreadsheet/Excel/Writer.php';
$workbook = new Spreadsheet_Excel_Writer('test.xls');
$worksheet =& $workbook->addWorksheet('My first worksheet');
if (PEAR::isError($worksheet)) {
die($worksheet->getMessage());
}
$workbook->close();
?>
أعتقد بالنسبة للمبتدئين ، ورقة عمل اسم ومحاولة كتابة الملف مباشرة (دون send()
).
أيضا, تأكد مع جميع وسائل الاتصال ، اختبار الاستجابة مع PEAR::isError()
.
نصائح أخرى
ليس من الواضح جدا, ولكن أعتقد أن ترسل الأوامر فقط يخلق رؤوس الصحيح نوع المحتوى واسم الملف.يجب أن ترسل البيانات بعد ذلك ، مع ما شابه
$tmpDocument = '/path/to/tmp/file.xls';
$workbook = new Spreadsheet_Excel_Writer($tmpDocument);
/* كود لتوليد ملف XLS */
$workbook->close();
$workbook->send('Report.xls');
readfile($tmpDocument);
إرسال() يرسل ذاكرة التخزين المؤقت-السيطرة على رؤوس نوع المحتوى رؤوس ، ولكن ليس المحتوى.المحتوى هو sendt ، كما أفهم من الرمز عند $المصنف->close() يسمى.
استخدام هذا لتحميل ورقة العمل في المتصفح الخاص بك
$workbook = new Spreadsheet_Excel_Writer(); // <-- leave parantheses empty
$workbook->send($DownloadFileName);
// Your fancy spreadsheet generating code
$workbook->close();
و هذه الكتابة إلى ملف.
$workbook = new Spreadsheet_Excel_Writer($SaveFileName);
// Your fancy spreadsheet generating code
$workbook->close();
تحتاج إلى اسم ورقة العمل في $worksheet =& $workbook->addWorksheet();
.
التحقق من التعليمات البرمجية أدناه:
require_once 'Spreadsheet/Excel/Writer.php';
//Create a workbook
$workbook = new Spreadsheet_Excel_Writer(); //() must be empty or your downloaded file will be corrupt.
// Create a worksheet
$worksheet =& $workbook->addWorksheet('test'); <-- You forgot to name your worksheet in your code, yours is "addWorksheet()"
// The actual data
$worksheet->write(0, 0, 'Name');
$worksheet->write(0, 1, 'Age');
$worksheet->write(1, 0, 'John Smith');
$worksheet->write(1, 1, 30);
$worksheet->write(2, 0, 'Johann Schmidt');
$worksheet->write(2, 1, 31); $worksheet->write(3, 0, 'Juan Herrera');
$worksheet->write(3, 1, 32);
// send HTTP headers
$workbook->send('prueba.xls');
// Let's send the file
$workbook->close();