.
วิธีการนำเสนอในบทความของคุณนั้นง่ายมาก แต่คุณไม่สามารถแน่ใจได้ว่ามันฉลาด
ไม่มีวิธีอื่นในการถ่ายโอนข้อมูลแบบตารางจาก PHP ไปยัง Excel ฉันจะอธิบายวิธีที่ฉันพบว่าเป็นวิธีที่ง่ายและใช้งานได้ดีที่สุด จำเป็นอย่างยิ่งที่จะต้องทราบว่าฉันไม่ได้พูดถึงการสร้างไฟล์ xls แต่เป็นการคัดลอกข้อมูลสำหรับ ช่วย Excelดังนั้น หากคุณไม่รู้จักโปรแกรมเมอร์ อย่าจำข้อความนั้น
ขั้นแรก สิ่งที่จำเป็นคือต้องกระจาย - ฝ่ายเราส่งสคริปต์ที่สร้างหัวข้อที่ไม่เหมาะสม:
ส่วนหัว ("Pragma: สาธารณะ");
ส่วนหัว ("หมดอายุ: 0");
header("Cache-Control: must-revalidate, post-check=0, pre-check=0");
ส่วนหัว ("การควบคุมแคช: ส่วนตัว", เท็จ);
header("Content-Type: application/x-msexcel");
header("Content-Disposition: attachment; filename=\"" . iconv("UTF-8", "CP1251", $object->getFileName()) . "\";");
ส่วนหัว ("การเข้ารหัสการถ่ายโอนเนื้อหา: ไบนารี");
header("เนื้อหา-ความยาว: " . $object->getFileSize());
$object – วัตถุทรงกลมในสุญญากาศ ซึ่งชนิดของ skin reader ถูกใช้งานในลักษณะที่เหมาะสมกว่า การกำหนดชื่อที่แตกต่างกันของ getFileName() และ getFileSize() ที่นี่คุณสามารถเห็นความแตกต่างที่ไม่ชัดเจน (บางอย่างสำหรับผู้ที่คาดเดาเกี่ยวกับมัน) - getFileName () คุณสามารถเปลี่ยนชื่อไฟล์ได้อย่างชัดเจน แต่ถ้าคุณต้องการให้เบราว์เซอร์วางเนื้อหาใน Excel คุณสามารถขยายไฟล์ได้ xls .
ฉันยังไม่ได้ค้นพบอะไรใหม่ ๆ ทุกอย่างถูกประดิษฐ์ขึ้นก่อนฉัน vtim เช่นเดียวกับที่จะอธิบายด้านล่าง
เนื่องจาก bulo ถูกกำหนดให้กับความคิดเห็นก่อนสัญกรณ์ Excel จึงฉลาดกว่าเกี่ยวกับ XML เอล สิ่งที่สำคัญที่สุด อาจจะเหมือนกันทั้งหมด ไม่ใช่ในความเร็ว แต่เป็นไปได้อย่างมากมาย ฉันจะไม่หลงทางในตาข่าย แต่ฉันจะทำบั้นท้ายธรรมดาและบังคับ คำอธิบายรายงานแท็กทั้งหมด
ต่อจากนี้ไป เมื่อสร้างหัวข้อขึ้นมา เราจำเป็นต้องให้ข้อมูลที่ถูกต้อง ฉันเรียกการสร้างตารางในวิธี okremy:
echo $object->getContent();
และฉันสร้างตารางสำหรับความช่วยเหลือจาก Smarty:
ดังที่คุณเห็นจากโค้ด เทมเพลตจะถูกส่งผ่าน $data array เพื่อแทนที่สองอาร์เรย์ - แถวส่วนหัวของตารางและบรรทัดข้อมูล
Warto หมายความว่าการใช้เทมเพลตเอ็นจิ้นสำหรับการสร้าง XML เท่านั้นและ XML สามารถประมวลผลได้โดยไม่ต้องใช้วิธีอื่น สำหรับการสร้าง XML ประเภทใดประเภทหนึ่งของฉัน มันเป็นเพียงข้อดีเล็กน้อยสำหรับโครงการที่ยอดเยี่ยม ซึ่งคุณไม่สามารถทำได้หากไม่มีเครื่องมือเทมเพลต
ตัวอย่างเช่น ฉันจะสร้างตารางที่ง่ายที่สุด สำหรับ bazhanya คุณสามารถจัดการแอตทริบิวต์จำนวนมากขึ้นได้ เป็นสิ่งสำคัญโดยเฉพาะอย่างยิ่ง เนื่องจากเป็นสิ่งสำคัญ ที่ไม่จำเป็นต้องใช้ไลบรารีของบุคคลที่สามสำหรับการนำไปใช้งาน
คำอธิบายของวิธีการkіlkarokіv pratsyuєในโครงการเดียวและ zhden koristuvach dosіโดยไม่สงสัยว่าข้อมูลที่กำลังมองหาไม่ใช่เอกสาร MS Office
สามารถอ่านรายงานเกี่ยวกับโครงสร้างของ XML ซึ่งนำเสนอใน MS Excel ได้ใน
ที่ bagats กับหุ่นยนต์ PHP ที่ลิงก์กับ MySQL vinikaєความต้องการเช่นการส่งออกข้อมูลจากฐานในรูปแบบ xls เพื่อให้ผู้ที่ต้องการข้อมูลในการประมวลผล โปรแกรม Excelมิฉะนั้น ก็เป็นเพียงสำหรับ koristuvachas ที่จะประหลาดใจกับข้อมูลอย่างมีเล่ห์เหลี่ยม ไม่นานมานี้ ฉันมีความต้องการไวน์มาก และวันนี้ฉันจะบอกคุณว่าทำอย่างไรจึงจะถูกต้อง
ฉันจะบอกคุณอีกครั้งว่าจะทำอย่างไร ยกโทษให้ฉัน แต่วันนี้พวกเขาจะสบายดี
สำหรับ cob ฉันจะกำหนดก้นของไฟล์ xls สุดท้ายในโปรแกรม Excel มุมมองจะมีลักษณะดังนี้:
ไม่เช่นนั้นดูเหมือนว่ารูปภาพสไตล์ทุกวันไม่มีอะไรชัดเจนเพียงแค่ส่วนหัวของคอลัมน์และข้อมูลเท่านั้น
ก่อนหน้านั้น ตัวฉันเองมาถึงตัวเลือกที่มีชีวิตชีวา ฉันพยายามสร้างรูปแบบ csv แต่มันออกมาค่อนข้างงุ่มง่าม จากนั้นฉันพยายามวาดตารางและบันทึกด้วยส่วนขยาย xls ดังนั้นจึงกลายเป็นเหมือนnіsenіtnitsa วิธีการที่ฉันจะอธิบายทันทีในอำนาจของฉัน และฉันจะแบ่งปันกับคุณทันที
ในเบื้องต้น ผมจะชี้ให้เห็นโค้ดทั้งหมด ซึ่งผมได้แสดงความเห็นไว้มากที่สุดเท่าที่จะมากได้ คุณสามารถดูและบันทึกด้วยนามสกุล php แล้วลองใช้งานได้ เพียงอย่าลืมตั้งค่าการเชื่อมต่อกับฐานข้อมูล .
ส่งออกข้อมูลจาก MySQL ไปยัง Excel ใน PHP
และถ้าคุณรู้วิธี ฉันกำลังจัดเรียงข้อมูล ฉันจะดึงส่วนท้ายของตารางอย่างง่ายในฐานข้อมูล ( ฉันชื่อเทส):
ตารางทดสอบ:
id | ชื่อจริง | ชื่อ |
1 | Ivanov | อีวาน |
2 | Petrov | เปโตร |
2 | Petrov2 | Petr2 |
ความคิดทั้งหมดนี้เป็นของฟังก์ชัน หีบห่อ()เมื่อฉันแพ็คข้อมูลในแถวไบนารีและเรากรอกข้อมูลในแถวนี้ตามลำดับในขณะที่เราสำรวจจากฐานข้อมูล mysqlเพื่อฟังก์ชั่นที่ยอดเยี่ยมเพิ่มเติม mysql_query().
เพื่อย้อนกลับความถูกต้องของรหัสนี้ เพื่อให้แน่ใจว่าคุณเชื่อมต่อกับฐานข้อมูลและสร้างตารางที่คล้ายกัน คุณสามารถส่งคำขอต่อไปนี้:
http://your_site/file_name. php?id=2
คุณสามารถมีสองแถวที่มี id เท่ากัน 2
І ตอนนี้ หนัง ซึ่งคุณอนุญาตให้ใช้ข้อมูล คุณสามารถส่งออกไปยังของคุณ . ได้อย่างง่ายดาย คอมพิวเตอร์ท้องถิ่นผ่าน เว็บอินเตอร์เฟส. วิธีนี้เป็นวิธีที่ดีสำหรับผู้สื่อข่าวขององค์กร เช่นเดียวกับการขยายโปรแกรมสำหรับองค์กรของคุณ ตลอดจนสำหรับเว็บไซต์ของคุณบนอินเทอร์เน็ต ฉันขอโทษ ฉันช่วยคุณแล้ว ความสำเร็จ!
(data ฐานข้อมูล otrimani z mysql) เพื่อให้บรรลุความสำเร็จ ฉันเป็นผู้ชนะ Zend Framework ฉันต้องทำการเปลี่ยนแปลงบางอย่างในข้อมูลของฉันก่อนที่จะส่งออกไปยัง Excel อันที่จริง จำเป็นสำหรับฉันที่จะสร้างบัญชีเงินสดขนาดใหญ่
ฉันอ่านเอกสารจำนวนมาก แต่สะดุดอย่างสิ้นหวัง ฉันไม่เข้าใจจริงๆ ฉันจะเข้าใจได้อย่างไร ฉันต้องการ PEAR จริงๆหรือ? ทำไมจึงต้องมีห้องสมุดของชั้นเรียน? จิเป็นใบ้ ทางที่ง่ายเทส เทส?
ข้างหลัง
ฉันจะสอนวิธีใช้ไลบรารี PHPExcel PHPExcel ให้คุณ ยากเพียงpіdtrimuєraznі formati, robiti vizualnye formatuvannya และเรียบง่ายที่vikoristannі
คุณสามารถเรียนรู้เพิ่มเติมเกี่ยวกับเรื่องนี้ได้ในเว็บไซต์ของคุณ: http://phpexcel.codeplex.com/ , (PHPExcel ถูกย้ายไปที่ https://github.com/PHPOffice/PHPExcel แล้ว)
ตัวอย่าง Vikoristan:
$objPHPExcel = PHPExcel ใหม่ (); /** คุณสามารถตั้งค่าคุณสมบัติได้มากมาย */ $objPHPExcel->getProperties()->setCreator("My company") ->setLastModifiedBy("John Doe") ->setTitle("Annual report") ->setSubject("Sales ") ->setDescription("รายงานการขายประจำปีโดย John Doe") ->setCategory("การเงิน"); /** เลือกแผ่นงานหนึ่งแผ่น */ $activeSheet = $objPHPExcel->setActiveSheetIndex(0); /** เพียงแค่ตั้งค่าของเซลล์ */ $activeSheet->setCellValue("A1", "plural");
คุณสามารถทำงานได้มากขึ้นอย่างเห็นได้ชัด การอ่าน ไฟล์ excel, การติดตั้งสไตล์ภาพ, การสร้างกราฟิก, ภาพจริง และอื่นๆ อีกมากมาย
ฉันเขียนการโทรเกี่ยวกับการเปลี่ยนแปลงในสินค้าคงคลัง 94 แถวซึ่งฉันรับข้อมูลจาก MySQL (6 kB + รายการต่อตาราง) สร้าง อาร์เรย์ที่อุดมไปด้วยชม. danih MySQLฮีโร่จากโต๊ะเดคิลโคห์แล้วโยนทุกอย่างในแถวเดียวและสร้าง
ไม่จำเป็นต้องมีส่วนขยายปกติ
สิ่งเดียวที่จะเตือนคือฉันยังไม่เข้าใจวิธีการถ่มน้ำลาย เห็นได้ชัดว่า ale win ทำให้เกิดความล่าช้าใน Excel
แก้ไข: ฉันต้องโทษว่า "การบรรจุ" ที่ "การถ่ายโอนข้อมูล" ถือเป็นการล่วงละเมิด: daniweb.com
คุณสามารถทวีตไลบรารี phpexcel สิ่งนี้ทำให้คุณสามารถเขียนและอ่านจากรูปแบบไฟล์ต่างๆ ในสเปรดชีต
สำหรับการผสานรวมกับ zend คุณสามารถรีบขอความช่วยเหลือจากกองกำลังที่น่ารังเกียจ
คุณสามารถแก้ไข CSV เพื่อสร้างรูปแบบที่สามารถนำเข้าสำหรับ excel วิธีที่ง่ายที่สุดที่จะเติบโต
CSV มีลักษณะดังนี้:
"เนื้อหาในเซลล์แรกของฉัน" "เนื้อหาในเซลล์ที่สองของฉัน" "เนื้อหาในเซลล์ที่สามของฉัน" "บรรทัดที่สอง เนื้อหาในเซลล์แรก" "ฯลฯ" "ฯลฯ
แถวหนังเป็นแถว Excel ให้วางตรงกลางห้อง อุ้งเท้าแกว่งและแบ่งปันกันเป็นก้อน โปรดใช้ความระมัดระวัง เนื่องจากข้อมูลของคุณมีอยู่แล้ว คุณสามารถสร้างความเสียหายให้กับ CSV และสร้างแถวใหม่ได้
จาก Google จำนวนน้อยที่คุณรู้จัก: http://www.the-art-of-web.com/php/dataexport/
การเตรียมข้อมูล
$data = array(array("firstname" => "Mary", "lastname" => "Johnson", "age" => 25), array("firstname" => "Amanda", "lastname" => ") Miller", "age" => 18), array("firstname" => "James", "lastname" => "Brown", "age" => 31), array("firstname" => "Patricia", "lastname" => "Williams", "age" => 7), array("firstname" => "Michael", "lastname" => "Davis", "age" => 43), array("firstname" => "Sarah", "lastname" => "Miller", "age" => 24), array("firstname" => "Patrick", "lastname" => "Miller", "age" => 27) );
ขั้นตอนแรกคือการดูข้อมูลในรูปแบบที่มีตัวจัดตาราง (CSV สามารถบิดเบี้ยวได้ แต่พับเพิ่มเล็กน้อย) สำหรับรหัส mi vikoristovuemo ถัดไป:
เราตั้งค่าประเภทเป็นข้อความ/ธรรมดาแทน เพื่อให้ดูผลลัพธ์ได้ง่ายในเบราว์เซอร์ ในอีกทางหนึ่งไม่มีเศษ การจัดรูปแบบ HTML, visnovok ปรากฏเป็นข้อความหนึ่งแถว
มุมมองแถวแรกจะเป็นส่วนหัวของคอลัมน์ (เขียนชื่อของฟิลด์พร้อมกัน) ค่าจะถูกเพิ่มโดยแท็บ \t ฉัน ในแถวที่มีการขยายแถว \n ผลลัพธ์อาจมีลักษณะดังนี้:
คนแรก คนสุดท้าย ริก มารี จอห์นสัน 25 อแมนดา มิลเลอร์ 18 เจมส์ บราวน์ 31 แพทริเซีย วิลเลียมส์ 7 ไมเคิล เดวิส 43 ซาร่าห์ มิลเลอร์ 24 แพทริค มิลเลอร์ 27
รหัสนี้มีจุดอ่อนที่อาจไม่ชัดเจนในทันที วิธีการทำงานเหมือนการรดน้ำอย่างที่คุณเห็นเพื่อล้างแค้นหรือโรยสัญลักษณ์ของตารางหรือมีอะไรมากกว่านั้นแถวใหม่? Tse vikliche กระบวนการทั้งหมด เพื่อที่เราพึ่งพาสัญลักษณ์ qi เพื่อแสดงเส้นและขยายแถว
วิธีแก้ไขคือ "ซ่อน" สัญลักษณ์การจัดตาราง ด้วยวิธีนี้ เราแทนที่แท็บด้วยตัวอักษร \t และตัวแบ่งบรรทัดด้วยตัวอักษร \n เพื่อไม่ให้กลิ่นเหม็นในการจัดรูปแบบ:
ตอนนี้ แถวแรกของสกินจะเป็นดวงจันทร์ ไม่ว่าสัญลักษณ์การจัดเรียงจะถูกแทนที่ด้วย "\t" เพื่อไม่ให้คอลัมน์ของเราแตก ดังนั้น ไม่ว่าจะเป็นการขยายแถวที่อยู่ตรงกลางของข้อมูล พวกมันจะถูกแทนที่ด้วย \n