PHP рд╕реЗ рдПрдХреНрд╕реЗрд▓ рдореЗрдВ рд╕рд╛рд░рдгреАрдмрджреНрдз рдбреЗрдЯрд╛ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░рдиреЗ рдХрд╛ рдЖрд╕рд╛рди рддрд░реАрдХрд╛

PHP рдореЗрдВ xls рдмрдирд╛рдиреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдПрдХ рд▓реЗрдЦ рдиреЗ рдореБрдЭреЗ рдЗрд╕ рд╡рд┐рд╖рдп рдХреЛ рд▓рд┐рдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдкреНрд░реЗрд░рд┐рдд рдХрд┐рдпрд╛ред
рдЙрд╕ рдиреЛрдЯ рдореЗрдВ рдкреНрд░рд╕реНрддреБрдд рд╡рд┐рдзрд┐ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдмрд╣реБрдд рд╕рд░рд▓ рд╣реИ, рд▓реЗрдХрд┐рди рд╣рдореЗрд╢рд╛ рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рдирд╣реАрдВ рд╣реЛ рд╕рдХрддреА рд╣реИред
PHP рд╕реЗ рдПрдХреНрд╕реЗрд▓ рдореЗрдВ рд╕рд╛рд░рдгреАрдмрджреНрдз рдбреЗрдЯрд╛ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░рдиреЗ рдХреЗ рдХрдИ рдЕрдиреНрдп рддрд░реАрдХреЗ рд╣реИрдВ, рдореИрдВ рдЙрд╕ рдПрдХ рдХрд╛ рд╡рд░реНрдгрди рдХрд░реВрдВрдЧрд╛ рдЬреЛ рдореБрдЭреЗ рд╕рдмрд╕реЗ рд╕рд░рд▓ рдФрд░ рдХрд╛рд░реНрдпрд╛рддреНрдордХ рд▓рдЧрддрд╛ рдерд╛ред рдпрд╣ рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рдзреНрдпрд╛рди рджрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП рдХрд┐ рдореИрдВ рдПрдХ xls рдлрд╝рд╛рдЗрд▓ рдмрдирд╛рдиреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдирд╣реАрдВ рдХрд░ рд░рд╣рд╛ рд╣реВрдВ, рд▓реЗрдХрд┐рди рдХреЗрд╡рд▓ рдпрд╣ рд╕реБрдЭрд╛рд╡ рджреЗ рд░рд╣рд╛ рд╣реВрдВ рдХрд┐ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдПрдХреНрд╕реЗрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдкреНрд░рд╛рдкреНрдд рдбреЗрдЯрд╛ рдХреЛ рдЦреЛрд▓реЗрдВ рддрд╛рдХрд┐ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЛ рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рдореЗрдВ рдЕрдиреБрднрд╡ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред

рдЗрд╕рд▓рд┐рдП, рдкрд╣рд▓реА рдмрд╛рдд рдпрд╣ рд╣реИ рдХрд┐ рд╣рдорд╛рд░реЗ рдкреЗрдЬ рдкрд░ рдПрдХ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЗ рд▓рд┐рдП рд▓рд┐рдВрдХ рд╣реИ рдЬреЛ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рд╣реЗрдбрд░ рдЙрддреНрдкрдиреНрди рдХрд░рддрд╛ рд╣реИ:
header("Pragma: public");
header("Expires: 0");
header("Cache-Control: must-revalidate, post-check=0, pre-check=0");
header("Cache-Control: private", false);
header("Content-Type: application/x-msexcel");
header("Content-Disposition: attachment; filename=\"" . iconv('UTF-8', 'CP1251', $object->getFileName()) . "\";");
header("Content-Transfer-Encoding: binary");
header("Content-Length: " . $object->getFileSize());

$ рд╡рд╕реНрддреБ - рдПрдХ рдирд┐рд░реНрд╡рд╛рдд рдореЗрдВ рдПрдХ рдЧреЛрд▓рд╛рдХрд╛рд░ рд╡рд╕реНрддреБ рдЬрд┐рд╕реЗ рд╣рд░ рдкрд╛рдардХ рд╕рдмрд╕реЗ рдЬреНрдпрд╛рджрд╛ рдкрд╕рдВрдж рдХрд░рддрд╛ рд╣реИред GetFileName () рдФрд░ getFileSize () рдЧреЗрдЯрд░реНрд╕ рдХрд╛ рдЙрджреНрджреЗрд╢реНрдп рдирд╛рдореЛрдВ рд╕реЗ рд╕реНрдкрд╖реНрдЯ рд╣реИред рдпрд╣ рдПрдХ рдЧреИрд░-рд╕реНрдкрд╖реНрдЯ рдмрд╛рд░реАрдХрд┐рдпреЛрдВ рдХреЛ рдЙрдЬрд╛рдЧрд░ рдХрд░рдиреЗ рдХреЗ рд▓рд╛рдпрдХ рд╣реИ (рдзрдиреНрдпрд╡рд╛рдж рдореБрдЭреЗ рдпрд╛рдж рджрд┐рд▓рд╛рдиреЗ рдХреЗ рд▓рд┐рдП) - getFileName () рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рдХрд┐рд╕реА рднреА рдлрд╝рд╛рдЗрд▓ рдХрд╛ рдирд╛рдо рд╡рд╛рдкрд╕ рдХрд░ рд╕рдХрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдпрджрд┐ рдЖрдк рдЪрд╛рд╣рддреЗ рд╣реИрдВ рдХрд┐ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдПрдХреНрд╕реЗрд▓ рдореЗрдВ рдкреНрд░рд╛рдкреНрдд рд╕рд╛рдордЧреНрд░реА рдХреЛ рдЦреЛрд▓рдиреЗ рдХреА рдкреЗрд╢рдХрд╢ рдХрд░реЗ, рддреЛ рдлрд╝рд╛рдЗрд▓ рдПрдХреНрд╕рдЯреЗрдВрд╢рди xls рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред
рдореИрдВрдиреЗ рдЕрднреА рддрдХ рдХреБрдЫ рднреА рдирдпрд╛ рдирд╣реАрдВ рдмрддрд╛рдпрд╛ рд╣реИ, рдпрд╣ рд╕рдм рдореЗрд░реЗ рд╕рд╛рдордиреЗ рдЖрд╡рд┐рд╖реНрдХрд╛рд░ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛, рд╣рд╛рд▓рд╛рдВрдХрд┐, рд╕рд╛рде рд╣реА рд╕рд╛рде рдиреАрдЪреЗ рд╡рд░реНрдгрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред
рдЬреИрд╕рд╛ рдХрд┐ PHP рдореЗрдВ xls рдкреАрдврд╝реА рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд▓реЗрдЦ рдкрд░ рдЯрд┐рдкреНрдкрдгрд┐рдпреЛрдВ рдореЗрдВ рд╕рд╣реА рдврдВрдЧ рд╕реЗ рдЙрд▓реНрд▓реЗрдЦ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдПрдХреНрд╕реЗрд▓ XML рдХреЗ рд╕рд╛рде рдмрд╣реБрдд рддреЗрдЬреА рд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред рд▓реЗрдХрд┐рди рд╕рдмрд╕реЗ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд▓рд╛рдн, рд╢рд╛рдпрдж, рдЕрднреА рднреА рдЧрддрд┐ рдореЗрдВ рдирд╣реАрдВ рд╣реИ, рд▓реЗрдХрд┐рди рдмрд╣реБрдд рд╡реНрдпрд╛рдкрдХ рд╕рдВрднрд╛рд╡рдирд╛рдУрдВ рдореЗрдВ рд╣реИред рдореИрдВ рдЬрдВрдЧрд▓ рдореЗрдВ рдЧрд╣рд░рд╛рдИ рддрдХ рдирд╣реАрдВ рдЬрд╛рдКрдВрдЧрд╛, рд▓реЗрдХрд┐рди рдХреЗрд╡рд▓ рдПрдХ рд╕рд░рд▓ рдЙрджрд╛рд╣рд░рдг рджреЗрддрд╛ рд╣реВрдВ, рдФрд░ рд╕рднреА рдЯреИрдЧреЛрдВ рдХреЗ рд╡рд┐рд╕реНрддреГрдд рд╡рд┐рд╡рд░рдг рдХреЗ рд▓рд┐рдП рдПрдХ рд▓рд┐рдВрдХред

рдЗрд╕рд▓рд┐рдП, рд╣реЗрдбрд░ рдЙрддреНрдкрдиреНрди рд╣реЛрдиреЗ рдХреЗ рдмрд╛рдж, рд╣рдореЗрдВ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЛ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдбреЗрдЯрд╛ рджреЗрдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдореИрдВ рдЖрдорддреМрд░ рдкрд░ рдЯреЗрдмрд▓ рдЬрдирд░реЗрд╢рди рдХреЛ рдПрдХ рдЕрд▓рдЧ рддрд░реАрдХреЗ рд╕реЗ рд▓рдкреЗрдЯрддрд╛ рд╣реВрдВ:
echo $object->getContent();

рдФрд░ рд╕реНрдорд╛рд░реНрдЯреА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рддрд╛рд▓рд┐рдХрд╛ рдмрдирд╛рдИ рдЧрдИ рд╣реИ:
 <? xml рд╕рдВрд╕реНрдХрд░рдг = "1.0"?>
 <? mso-application progid = "Excel.Sheet"?>
 <рдХрд╛рд░реНрдпрдкреБрд╕реНрддрд┐рдХрд╛ xmlns = "urn: schemas-microsoft-com: рдХрд╛рд░реНрдпрд╛рд▓рдп: рд╕реНрдкреНрд░реЗрдбрд╢реАрдЯ" xmlns: o = "urn: schemas-microsoft-com: рдХрд╛рд░реНрдпрд╛рд▓рдп: рдХрд╛рд░реНрдпрд╛рд▓рдп" xmlns: x = "рдХрд▓рд╢: schemas-microsoft-com: рдХрд╛рд░реНрдпрд╛рд▓рдп: excel "xmlns: ss =" urn: schemas-microsoft-com: рдХрд╛рд░реНрдпрд╛рд▓рдп: рд╕реНрдкреНрд░реЗрдбрд╢реАрдЯ "xmlns: html =" http://www.w3.org/TR/REC-html40 ">
	 <рд╢реИрд▓рд┐рдпрд╛рдБ>
  		 <рд╢реИрд▓реА ss: ID = "рдмреЛрд▓реНрдб">
			 <рдлрд╝реЙрдиреНрдЯ ss: рдмреЛрд▓реНрдб = "1" />
		 </ рд╢реИрд▓реА>
 	 </ рд╢реИрд▓рд┐рдпрд╛рдБ> 
	 <рдХрд╛рд░реНрдпрдкрддреНрд░рдХ ss: рдирд╛рдо = "рдХрд╛рд░реНрдпрдкрддреНрд░рдХ рдирд╛рдо">
		 <рддрд╛рд▓рд┐рдХрд╛>
			 <рдкрдВрдХреНрддрд┐>
				 {foreach from = $ data.header рдЖрдЗрдЯрдо = рдХреИрдкреНрд╢рди}
					 <рд╕реЗрд▓ ss: рд╕реНрдЯрд╛рдЗрд▓рд┐рдб = "рдмреЛрд▓реНрдб"> <рдбреЗрдЯрд╛ ss: рдЯрд╛рдЗрдк = "рд╕реНрдЯреНрд░рд┐рдВрдЧ"> {$ рдХреИрдкреНрд╢рдиред рдХреЛрд▓рдореНрдмрди рдиреЗрдо} </ рдбрд╛рдЯрд╛> </ рд╕реЗрд▓>
				 {/ foreach}
			 </ рдкрдВрдХреНрддрд┐> 
			 {foreach from = $ data.content item = row}	
				 <рдкрдВрдХреНрддрд┐>
					 {foreach = $ рдкрдВрдХреНрддрд┐ рдЖрдЗрдЯрдо = col} рд╕реЗ
						 <рд╕реЗрд▓> <рдбреЗрдЯрд╛ ss: рдЯрд╛рдЗрдк = "рд╕реНрдЯреНрд░рд┐рдВрдЧ"> {$ col}} </ рдбреЗрдЯрд╛> </ рд╕реЗрд▓>
					 {/ foreach}
				 </ рдкрдВрдХреНрддрд┐>
			 {/ foreach}
		 </ рддрд╛рд▓рд┐рдХрд╛>
	 </ рд╡рд░реНрдХрд╢реАрдЯ>
 </ рд╡рд░реНрдХрдмреБрдХ>

рдЬреИрд╕рд╛ рдХрд┐ рдЖрдк рдХреЛрдб рд╕реЗ рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ, рджреЛ рд╕рд░рдгрд┐рдпреЛрдВ рд╡рд╛рд▓реЗ $ рдбреЗрдЯрд╛ рд╕рд░рдгреА рдХреЛ рдЯреЗрдореНрдкреНрд▓реЗрдЯ рдкрд░ рднреЗрдЬрд╛ рдЬрд╛рддрд╛ рд╣реИ - рдЯреЗрдмрд▓ рд╣реЗрдбрд░ рд▓рд╛рдЗрди рдФрд░ рд╕реНрд╡рдпрдВ рдбреЗрдЯрд╛ред
рдпрд╣ рдзреНрдпрд╛рди рджреЗрдиреЗ рдпреЛрдЧреНрдп рд╣реИ рдХрд┐ рдХреЗрд╡рд▓ рдПрдХреНрд╕рдПрдордПрд▓ рдЙрддреНрдкрдиреНрди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЯреЗрдореНрдкрд▓реЗрдЯ рдЗрдВрдЬрди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдХреБрдЫ рдорд╣рдВрдЧрд╛ рд╣реИ, рдФрд░ рдЖрдк рдПрдХреНрд╕рдПрдордПрд▓ рдХреЛ рдХрдИ рдЕрдиреНрдп рддрд░реАрдХреЛрдВ рд╕реЗ рдкреНрд░рд╛рдкреНрдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдореЗрд░реЗ рд╡рд┐рд╢реЗрд╖ рдорд╛рдорд▓реЗ рдореЗрдВ, XML рдкреАрдврд╝реА рдПрдХ рдмрдбрд╝реА рдкрд░рд┐рдпреЛрдЬрдирд╛ рдореЗрдВ рд╕рд┐рд░реНрдл рдПрдХ рдЫреЛрдЯрд╛ рд╕рд╛ рдмрд╛рди рд╣реИ, рдЬрд╣рд╛рдВ рдПрдХ рдЯреЗрдореНрдкрд▓реЗрдЯ рдЗрдВрдЬрди рдЕрдкрд░рд┐рд╣рд╛рд░реНрдп рд╣реИред

рдПрдХ рдЙрджрд╛рд╣рд░рдг рдХреЗ рд░реВрдк рдореЗрдВ, рдореИрдВрдиреЗ рдПрдХ рд╕рд╛рдзрд╛рд░рдг рддрд╛рд▓рд┐рдХрд╛ рджреА, рдпрджрд┐ рдЖрдк рдЪрд╛рд╣реЗрдВ, рддреЛ рдЖрдк рдмрд╣реБрдд рдмрдбрд╝реА рд╕рдВрдЦреНрдпрд╛ рдореЗрдВ рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдореЗрдВ рд╣реЗрд░рдлреЗрд░ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдпрд╣ рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рдЕрдЪреНрдЫрд╛ рд╣реИ рдЬрдм рдЖрдк рд╕рдордЭрддреЗ рд╣реИрдВ рдХрд┐ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреЗ рд▓рд┐рдП рдХрд┐рд╕реА рддреАрд╕рд░реЗ рдкрдХреНрд╖ рдХреЗ рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИред
рд╡рд░реНрдгрд┐рдд рд╡рд┐рдзрд┐ рдХрдИ рд╡рд░реНрд╖реЛрдВ рд╕реЗ рдПрдХ рд╣реА рдкрд░рд┐рдпреЛрдЬрдирд╛ рдкрд░ рдХрд╛рдо рдХрд░ рд░рд╣реА рд╣реИ рдФрд░ рдХрд┐рд╕реА рднреА рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЛ рдЕрднреА рддрдХ рд╕рдВрджреЗрд╣ рдирд╣реАрдВ рд╣реИ рдХрд┐ рдЬреЛ рдбреЗрдЯрд╛ рд╡реЗ рдЦреЛрд▓рддреЗ рд╣реИрдВ рд╡рд╣ рдПрдордПрд╕ рдСрдлрд┐рд╕ рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рдирд╣реАрдВ рд╣реИред

рдЖрдк MSDN XML рд╕реНрдкреНрд░реЗрдбрд╢реАрдЯ рд╕рдВрджрд░реНрдн рдореЗрдВ MS Excel рдореЗрдВ рдкреНрд░рдпреБрдХреНрдд XML рд╕рдВрд░рдЪрдирд╛ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЕрдзрд┐рдХ рдкрдврд╝ рд╕рдХрддреЗ рд╣реИрдВ

Source: https://habr.com/ru/post/In133233/


All Articles