<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>PHPLAMP网站建设 &#187; class-excel-xml</title>
	<atom:link href="http://www.phplamp.org/tag/class-excel-xml/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.phplamp.org</link>
	<description>PHPLAMP提供保定网站建设，网站推广优化服务。</description>
	<lastBuildDate>Tue, 31 Aug 2010 09:56:43 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>PHP生成Excel文件如此简单</title>
		<link>http://www.phplamp.org/2008/06/php-to-excel-clas/</link>
		<comments>http://www.phplamp.org/2008/06/php-to-excel-clas/#comments</comments>
		<pubDate>Tue, 24 Jun 2008 10:06:30 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[站长笔记]]></category>
		<category><![CDATA[class-excel-xml]]></category>
		<category><![CDATA[excel]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[框架学习]]></category>
		<category><![CDATA[源码共享]]></category>

		<guid isPermaLink="false">http://www.phplamp.org/?p=90</guid>
		<description><![CDATA[前阵子做了一个调查的小小项目。客户的想法是通过后台能将收集到的资料导出到Excel文件中，这样方便阅读，方便保存，及提取信息。
于是我就开始动手了:-)，分析了一下这个小小项目，对于我来说最大的难点就是生成Excel文件。本人只是一个小小站长。生成Excel文件之前也没搞过。当时只知道这么一点点：先用php header()出一个Excel头,然后后面跟上Excel的XML代码，这样就能导出Excel功能了。但是Excel头是什么? Excel的XML写法又如何写呢?一直不明！
于是又开始我的g.cn之旅……最终功夫不负有心人，被我找到了一个外国老大写的程序，原名为：class-excel-xml.inc.php。我在未争得此牛人同意的情况下做了如下修改，于是我的那个小小项目不到一天完工，客户也比较满意，毕竟他要求的功能咱实现了！
如您也对生成Excel而烦恼，可以看一下此段代码：
&#62;&#62;&#62;点击下载源文件&#60;&#60;&#60;

PHP代码

&#60;?php   
/**  
 * Excel vendor By dx_andy  
 * 整理自 class-excel-xml.inc.php  
 * 时间 2008-3-27 11:58  
 * 文件编码 utf-8  
 *   
 *  
 * 整理记录：  
 * 原文件中(function addRow) utf8_encode($v) =&#62; $v  
 * 并添加判断字符串是 数字型 还是 字符串型的方法  
 */  
  
class Excel{   
  
    /**  
     * Header of excel document (prepended to the rows)  
     *   
     * Copied from the excel xml-specs.  
     *   
     * @access private  
     * @var string  
     */  
    var $header = &#8220;&#60;?xml version=\&#8221;1.0\&#8221; encoding=\&#8221;UTF-8\&#8221;?\&#62;  
&#60;Workbook xmlns=\&#8221;urn:schemas-microsoft-com:office:spreadsheet\&#8221;  
 xmlns:x=\&#8221;urn:schemas-microsoft-com:office:excel\&#8221;  
 xmlns:ss=\&#8221;urn:schemas-microsoft-com:office:spreadsheet\&#8221;  
 xmlns:html=\&#8221;http://www.w3.org/TR/REC-html40\&#8221;&#62;&#8221;;   
  
    /**  
     * Footer of excel document (appended to the rows)  
     *   
     * Copied from the excel xml-specs.  
     *   
     * @access private  
     * @var string  
     */  
    var $footer = &#8220;&#60;/Workbook&#62;&#8221;;   
  
    /**  
     * Document lines (rows in an array)  
     *   
     * @access private  
     * @var array  
     */  
    var $lines = array ();   
  
    /**  
     * Worksheet title  
     *  
     * Contains the title of a single worksheet  
     *  
     * @access private   
     * @var string  
     */  
    var $worksheet_title = &#8220;Table1&#8243;;   
  
    /**  
     * Add a single row to the $document string  
     *   
     * @access private  
     * @param array 1-dimensional array  
     * @todo Row-creation should be done by $this-&#62;addArray  
     */  
    function addRow ($array) { [...]]]></description>
			<content:encoded><![CDATA[<p>前阵子做了一个调查的小小项目。客户的想法是通过后台能将收集到的资料导出到Excel文件中，这样方便阅读，方便保存，及提取信息。</p>
<p>于是我就开始动手了:-)，分析了一下这个小小项目，对于我来说最大的难点就是生成Excel文件。本人只是一个小小站长。生成Excel文件之前也没搞过。当时只知道这么一点点：先用php header()出一个Excel头,然后后面跟上Excel的XML代码，这样就能导出Excel功能了。但是Excel头是什么? Excel的XML写法又如何写呢?一直不明！</p>
<p>于是又开始我的g.cn之旅……最终功夫不负有心人，被我找到了一个外国老大写的程序，原名为：class-excel-xml.inc.php。我在未争得此牛人同意的情况下做了如下修改，于是我的那个小小项目不到一天完工，客户也比较满意，毕竟他要求的功能咱实现了！</p>
<p>如您也对生成Excel而烦恼，可以看一下此段代码：<span id="more-90"></span></p>
<p><a href="http://www.phplamp.org/wp-content/uploads/2008/06/to_excel.rar">&gt;&gt;&gt;点击下载源文件&lt;&lt;&lt;</a></p>
<div class="codeText">
<div class="codeHead">PHP代码</div>
<ol class="dp-c">
<li class="alt"><span><span>&lt;?php   </span></span></li>
<li><span class="comment">/** </span> </li>
<li class="alt"><span><span class="comment"> * Excel vendor By dx_andy </span> </span></li>
<li><span><span class="comment"> * 整理自 class-excel-xml.inc.php </span> </span></li>
<li class="alt"><span><span class="comment"> * 时间 2008-3-27 11:58 </span> </span></li>
<li><span><span class="comment"> * 文件编码 utf-8 </span> </span></li>
<li class="alt"><span><span class="comment"> *  </span> </span></li>
<li><span><span class="comment"> * </span> </span></li>
<li class="alt"><span><span class="comment"> * 整理记录： </span> </span></li>
<li><span><span class="comment"> * 原文件中(function addRow) utf8_encode($v) =&gt; $v </span> </span></li>
<li class="alt"><span><span class="comment"> * 并添加判断字符串是 数字型 还是 字符串型的方法 </span> </span></li>
<li><span><span class="comment"> */</span><span>  </span></span></li>
<li class="alt"><span>  </span></li>
<li><span class="keyword">class</span><span> Excel{   </span></li>
<li class="alt"><span>  </span></li>
<li><span>    </span><span class="comment">/** </span> </li>
<li class="alt"><span><span class="comment">     * Header of excel document (prepended to the rows) </span> </span></li>
<li><span><span class="comment">     *  </span> </span></li>
<li class="alt"><span><span class="comment">     * Copied from the excel xml-specs. </span> </span></li>
<li><span><span class="comment">     *  </span> </span></li>
<li class="alt"><span><span class="comment">     * @access private </span> </span></li>
<li><span><span class="comment">     * @var string </span> </span></li>
<li class="alt"><span><span class="comment">     */</span><span>  </span></span></li>
<li><span>    </span><span class="keyword">var</span><span> </span><span class="vars">$header</span><span> = </span><span class="string">&#8220;&lt;?xml version=\&#8221;1.0\&#8221; encoding=\&#8221;UTF-8\&#8221;?\&gt; </span> </li>
<li class="alt"><span><span class="string">&lt;Workbook xmlns=\&#8221;urn:schemas-microsoft-com:office:spreadsheet\&#8221; </span> </span></li>
<li><span><span class="string"> xmlns:x=\&#8221;urn:schemas-microsoft-com:office:excel\&#8221; </span> </span></li>
<li class="alt"><span><span class="string"> xmlns:ss=\&#8221;urn:schemas-microsoft-com:office:spreadsheet\&#8221; </span> </span></li>
<li><span><span class="string"> xmlns:html=\&#8221;http://www.w3.org/TR/REC-html40\&#8221;&gt;&#8221;</span><span>;   </span></span></li>
<li class="alt"><span>  </span></li>
<li><span>    </span><span class="comment">/** </span> </li>
<li class="alt"><span><span class="comment">     * Footer of excel document (appended to the rows) </span> </span></li>
<li><span><span class="comment">     *  </span> </span></li>
<li class="alt"><span><span class="comment">     * Copied from the excel xml-specs. </span> </span></li>
<li><span><span class="comment">     *  </span> </span></li>
<li class="alt"><span><span class="comment">     * @access private </span> </span></li>
<li><span><span class="comment">     * @var string </span> </span></li>
<li class="alt"><span><span class="comment">     */</span><span>  </span></span></li>
<li><span>    </span><span class="keyword">var</span><span> </span><span class="vars">$footer</span><span> = </span><span class="string">&#8220;&lt;/Workbook&gt;&#8221;</span><span>;   </span></li>
<li class="alt"><span>  </span></li>
<li><span>    </span><span class="comment">/** </span> </li>
<li class="alt"><span><span class="comment">     * Document lines (rows in an array) </span> </span></li>
<li><span><span class="comment">     *  </span> </span></li>
<li class="alt"><span><span class="comment">     * @access private </span> </span></li>
<li><span><span class="comment">     * @var array </span> </span></li>
<li class="alt"><span><span class="comment">     */</span><span>  </span></span></li>
<li><span>    </span><span class="keyword">var</span><span> </span><span class="vars">$lines</span><span> = </span><span class="keyword">array</span><span> ();   </span></li>
<li class="alt"><span>  </span></li>
<li><span>    </span><span class="comment">/** </span> </li>
<li class="alt"><span><span class="comment">     * Worksheet title </span> </span></li>
<li><span><span class="comment">     * </span> </span></li>
<li class="alt"><span><span class="comment">     * Contains the title of a single worksheet </span> </span></li>
<li><span><span class="comment">     * </span> </span></li>
<li class="alt"><span><span class="comment">     * @access private  </span> </span></li>
<li><span><span class="comment">     * @var string </span> </span></li>
<li class="alt"><span><span class="comment">     */</span><span>  </span></span></li>
<li><span>    </span><span class="keyword">var</span><span> </span><span class="vars">$worksheet_title</span><span> = </span><span class="string">&#8220;Table1&#8243;</span><span>;   </span></li>
<li class="alt"><span>  </span></li>
<li><span>    </span><span class="comment">/** </span> </li>
<li class="alt"><span><span class="comment">     * Add a single row to the $document string </span> </span></li>
<li><span><span class="comment">     *  </span> </span></li>
<li class="alt"><span><span class="comment">     * @access private </span> </span></li>
<li><span><span class="comment">     * @param array 1-dimensional array </span> </span></li>
<li class="alt"><span><span class="comment">     * @todo Row-creation should be done by $this-&gt;addArray </span> </span></li>
<li><span><span class="comment">     */</span><span>  </span></span></li>
<li class="alt"><span>    </span><span class="keyword">function</span><span> addRow (</span><span class="vars">$array</span><span>) {   </span></li>
<li><span>  </span></li>
<li class="alt"><span>        </span><span class="comment">// initialize all cells for this row </span><span>  </span></li>
<li><span>        </span><span class="vars">$cells</span><span> = </span><span class="string">&#8220;&#8221;</span><span>;   </span></li>
<li class="alt"><span>           </span></li>
<li><span>        </span><span class="comment">// foreach key -&gt; write value into cells </span><span>  </span></li>
<li class="alt"><span>        </span><span class="keyword">foreach</span><span> (</span><span class="vars">$array</span><span> </span><span class="keyword">as</span><span> </span><span class="vars">$k</span><span> =&gt; </span><span class="vars">$v</span><span>):   </span></li>
<li><span>               </span></li>
<li class="alt"><span>            </span><span class="comment">// 加个字符串与数字的判断 避免生成的 excel 出现数字以字符串存储的警告 </span><span>  </span></li>
<li><span>            </span><span class="keyword">if</span><span>(</span><span class="func">is_numeric</span><span>(</span><span class="vars">$v</span><span>)) {   </span></li>
<li class="alt"><span>                </span><span class="comment">// 防止首字母为 0 时生成 excel 后 0 丢失 </span><span>  </span></li>
<li><span>                </span><span class="keyword">if</span><span>(</span><span class="func">substr</span><span>(</span><span class="vars">$v</span><span>, 0, 1) == 0) {   </span></li>
<li class="alt"><span>                    </span><span class="vars">$cells</span><span> .= </span><span class="string">&#8220;&lt;Cell&gt;&lt;Data ss:Type=\&#8221;String\&#8221;&gt;&#8221;</span><span> . </span><span class="vars">$v</span><span> . </span><span class="string">&#8220;&lt;/Data&gt;&lt;/Cell&gt;\n&#8221;</span><span>;   </span></li>
<li><span>                } </span><span class="keyword">else</span><span> {   </span></li>
<li class="alt"><span>                    </span><span class="vars">$cells</span><span> .= </span><span class="string">&#8220;&lt;Cell&gt;&lt;Data ss:Type=\&#8221;Number\&#8221;&gt;&#8221;</span><span> . </span><span class="vars">$v</span><span> . </span><span class="string">&#8220;&lt;/Data&gt;&lt;/Cell&gt;\n&#8221;</span><span>;   </span></li>
<li><span>                }   </span></li>
<li class="alt"><span>            } </span><span class="keyword">else</span><span> {   </span></li>
<li><span>                </span><span class="vars">$cells</span><span> .= </span><span class="string">&#8220;&lt;Cell&gt;&lt;Data ss:Type=\&#8221;String\&#8221;&gt;&#8221;</span><span> . </span><span class="vars">$v</span><span> . </span><span class="string">&#8220;&lt;/Data&gt;&lt;/Cell&gt;\n&#8221;</span><span>;   </span></li>
<li class="alt"><span>            }   </span></li>
<li><span>  </span></li>
<li class="alt"><span>        </span><span class="keyword">endforeach</span><span>;   </span></li>
<li><span>  </span></li>
<li class="alt"><span>        </span><span class="comment">// transform $cells content into one row </span><span>  </span></li>
<li><span>        </span><span class="vars">$this</span><span>-&gt;lines[] = </span><span class="string">&#8220;&lt;Row&gt;\n&#8221;</span><span> . </span><span class="vars">$cells</span><span> . </span><span class="string">&#8220;&lt;/Row&gt;\n&#8221;</span><span>;   </span></li>
<li class="alt"><span>  </span></li>
<li><span>    }   </span></li>
<li class="alt"><span>  </span></li>
<li><span>    </span><span class="comment">/** </span> </li>
<li class="alt"><span><span class="comment">     * Add an array to the document </span> </span></li>
<li><span><span class="comment">     *  </span> </span></li>
<li class="alt"><span><span class="comment">     * This should be the only method needed to generate an excel </span> </span></li>
<li><span><span class="comment">     * document. </span> </span></li>
<li class="alt"><span><span class="comment">     *  </span> </span></li>
<li><span><span class="comment">     * @access public </span> </span></li>
<li class="alt"><span><span class="comment">     * @param array 2-dimensional array </span> </span></li>
<li><span><span class="comment">     * @todo Can be transfered to __construct() later on </span> </span></li>
<li class="alt"><span><span class="comment">     */</span><span>  </span></span></li>
<li><span>    </span><span class="keyword">function</span><span> addArray (</span><span class="vars">$array</span><span>) {   </span></li>
<li class="alt"><span>  </span></li>
<li><span>        </span><span class="comment">// run through the array and add them into rows </span><span>  </span></li>
<li class="alt"><span>        </span><span class="keyword">foreach</span><span> (</span><span class="vars">$array</span><span> </span><span class="keyword">as</span><span> </span><span class="vars">$k</span><span> =&gt; </span><span class="vars">$v</span><span>):   </span></li>
<li><span>            </span><span class="vars">$this</span><span>-&gt;addRow (</span><span class="vars">$v</span><span>);   </span></li>
<li class="alt"><span>        </span><span class="keyword">endforeach</span><span>;   </span></li>
<li><span>  </span></li>
<li class="alt"><span>    }   </span></li>
<li><span>  </span></li>
<li class="alt"><span>    </span><span class="comment">/** </span> </li>
<li><span><span class="comment">     * Set the worksheet title </span> </span></li>
<li class="alt"><span><span class="comment">     *  </span> </span></li>
<li><span><span class="comment">     * Checks the string for not allowed characters (:\/?*), </span> </span></li>
<li class="alt"><span><span class="comment">     * cuts it to maximum 31 characters and set the title. Damn </span> </span></li>
<li><span><span class="comment">     * why are not-allowed chars nowhere to be found? Windows </span> </span></li>
<li class="alt"><span><span class="comment">     * help&#8217;s no help&#8230; </span> </span></li>
<li><span><span class="comment">     * </span> </span></li>
<li class="alt"><span><span class="comment">     * @access public </span> </span></li>
<li><span><span class="comment">     * @param string $title Designed title </span> </span></li>
<li class="alt"><span><span class="comment">     */</span><span>  </span></span></li>
<li><span>    </span><span class="keyword">function</span><span> setWorksheetTitle (</span><span class="vars">$title</span><span>) {   </span></li>
<li class="alt"><span>  </span></li>
<li><span>        </span><span class="comment">// strip out special chars first </span><span>  </span></li>
<li class="alt"><span>        </span><span class="vars">$title</span><span> = preg_replace (</span><span class="string">&#8220;/[\\\|:|\/|\?|\*|\[|\]]/&#8221;</span><span>, </span><span class="string">&#8220;&#8221;</span><span>, </span><span class="vars">$title</span><span>);   </span></li>
<li><span>  </span></li>
<li class="alt"><span>        </span><span class="comment">// now cut it to the allowed length </span><span>  </span></li>
<li><span>        </span><span class="vars">$title</span><span> = </span><span class="func">substr</span><span> (</span><span class="vars">$title</span><span>, 0, 31);   </span></li>
<li class="alt"><span>  </span></li>
<li><span>        </span><span class="comment">// set title </span><span>  </span></li>
<li class="alt"><span>        </span><span class="vars">$this</span><span>-&gt;worksheet_title = </span><span class="vars">$title</span><span>;   </span></li>
<li><span>  </span></li>
<li class="alt"><span>    }   </span></li>
<li><span>  </span></li>
<li class="alt"><span>    </span><span class="comment">/** </span> </li>
<li><span><span class="comment">     * Generate the excel file </span> </span></li>
<li class="alt"><span><span class="comment">     *  </span> </span></li>
<li><span><span class="comment">     * Finally generates the excel file and uses the header() function </span> </span></li>
<li class="alt"><span><span class="comment">     * to deliver it to the browser. </span> </span></li>
<li><span><span class="comment">     *  </span> </span></li>
<li class="alt"><span><span class="comment">     * @access public </span> </span></li>
<li><span><span class="comment">     * @param string $filename Name of excel file to generate (&#8230;xls) </span> </span></li>
<li class="alt"><span><span class="comment">     */</span><span>  </span></span></li>
<li><span>    </span><span class="keyword">function</span><span> generateXML (</span><span class="vars">$filename</span><span>) {   </span></li>
<li class="alt"><span>  </span></li>
<li><span>        </span><span class="comment">// deliver header (as recommended in php manual) </span><span>  </span></li>
<li class="alt"><span>        header(</span><span class="string">&#8220;Content-Type: application/vnd.ms-excel; charset=UTF-8&#8243;</span><span>);   </span></li>
<li><span>        header(</span><span class="string">&#8220;Content-Disposition: inline; filename=\&#8221;"</span><span> . </span><span class="vars">$filename</span><span> . </span><span class="string">&#8220;.xls\&#8221;"</span><span>);   </span></li>
<li class="alt"><span>  </span></li>
<li><span>        </span><span class="comment">// print out document to the browser </span><span>  </span></li>
<li class="alt"><span>        </span><span class="comment">// need to use stripslashes for the damn &#8221;&gt;&#8221; </span><span>  </span></li>
<li><span>        </span><span class="func">echo</span><span> </span><span class="func">stripslashes</span><span> (</span><span class="vars">$this</span><span>-&gt;header);   </span></li>
<li class="alt"><span>        </span><span class="func">echo</span><span> </span><span class="string">&#8220;\n&lt;Worksheet ss:Name=\&#8221;"</span><span> . </span><span class="vars">$this</span><span>-&gt;worksheet_title . </span><span class="string">&#8220;\&#8221;&gt;\n&lt;Table&gt;\n&#8221;</span><span>;   </span></li>
<li><span>        </span><span class="func">echo</span><span> </span><span class="string">&#8220;&lt;Column ss:Index=\&#8221;1\&#8221; ss:AutoFitWidth=\&#8221;0\&#8221; ss:Width=\&#8221;110\&#8221;/&gt;\n&#8221;</span><span>;   </span></li>
<li class="alt"><span>        </span><span class="func">echo</span><span> implode (</span><span class="string">&#8220;\n&#8221;</span><span>, </span><span class="vars">$this</span><span>-&gt;lines);   </span></li>
<li><span>        </span><span class="func">echo</span><span> </span><span class="string">&#8220;&lt;/Table&gt;\n&lt;/Worksheet&gt;\n&#8221;</span><span>;   </span></li>
<li class="alt"><span>        </span><span class="func">echo</span><span> </span><span class="vars">$this</span><span>-&gt;footer;   </span></li>
<li><span>  </span></li>
<li class="alt"><span>    }   </span></li>
<li><span>  </span></li>
<li class="alt"><span>}   </span></li>
<li><span class="comment">/** </span> </li>
<li class="alt"><span><span class="comment"> *  CakePHP中使用方法 </span> </span></li>
<li><span><span class="comment"> *  注意 ** cakePHP 配置文件 define(&#8216;DEBUG&#8217;, 0); </span> </span></li>
<li class="alt"><span><span class="comment"> * </span> </span></li>
<li><span><span class="comment"> *  vendor (&#8216;Excel&#8217;); </span> </span></li>
<li class="alt"><span><span class="comment"> *  $doc = array ( </span> </span></li>
<li><span><span class="comment"> *       0 =&gt; array (&#8216;中国&#8217;, &#8217;中国人&#8217;, &#8217;中国人民&#8217;, &#8217;123456&#8242;); </span> </span></li>
<li class="alt"><span><span class="comment"> *  ); </span> </span></li>
<li><span><span class="comment"> *  $xls = new Excel; </span> </span></li>
<li class="alt"><span><span class="comment"> *  $xls-&gt;addArray ( $doc ); </span> </span></li>
<li><span><span class="comment"> *  $xls-&gt;generateXML (&#8220;mytest&#8221;); </span> </span></li>
<li class="alt"><span><span class="comment"> */</span><span>  </span></span></li>
<li><span>  </span></li>
<li class="alt"><span class="comment">/** </span> </li>
<li><span><span class="comment"> *  非框架使用方法 </span> </span></li>
<li class="alt"><span><span class="comment"> * </span> </span></li>
<li><span><span class="comment"> *  require_once(&#8216;excel.php&#8217;); </span> </span></li>
<li class="alt"><span><span class="comment"> *  $doc = array ( </span> </span></li>
<li><span><span class="comment"> *       0 =&gt; array (&#8216;中国&#8217;, &#8217;中国人&#8217;, &#8217;中国人民&#8217;, &#8217;123456&#8242;); </span> </span></li>
<li class="alt"><span><span class="comment"> *  ); </span> </span></li>
<li><span><span class="comment"> *  $xls = new Excel; </span> </span></li>
<li class="alt"><span><span class="comment"> *  $xls-&gt;addArray ( $doc ); </span> </span></li>
<li><span><span class="comment"> *  $xls-&gt;generateXML (&#8220;mytest&#8221;); </span> </span></li>
<li class="alt"><span><span class="comment"> */</span><span>  </span></span></li>
<li><span>  </span></li>
<li class="alt"><span>?&gt;  </span></li>
</ol>
</div>
]]></content:encoded>
			<wfw:commentRss>http://www.phplamp.org/2008/06/php-to-excel-clas/feed/</wfw:commentRss>
		<slash:comments>12</slash:comments>
		</item>
	</channel>
</rss>
