Chinaunix

标题: 这段操作excel的代码应该怎么操作设置每列的宽度 [打印本页]

作者: tqjs    时间: 2007-04-13 17:48
标题: 这段操作excel的代码应该怎么操作设置每列的宽度
header ('Content-type: application/x-msexcel');
header ("Content-Disposition: attachment; filename=$ExcelFile" );  

function xlsBOF() {
    echo pack("ssssss", 0x809, 0x8, 0x0, 0x10, 0x0, 0x0);  
    return;
}
function xlsEOF() {
    echo pack("ss", 0x0A, 0x00);
    return;
}
function xlsWriteNumber($Row, $Col, $Value) {
    echo pack("sssss", 0x203, 14, $Row, $Col, 0x0);
    echo pack("d", $Value);
    return;
}
function xlsWriteLabel($Row, $Col, $Value ) {
    $L = strlen($Value);
    echo pack("ssssss", 0x204, 8 + $L, $Row, $Col, 0x0, $L);
    echo $Value;
return;
}

xlsBOF();
for ($i=0;$i<count($Data[0]);$i++)
{
        for ($j=0;$j<count($Data);$j++)
        {
                $v=$Data[$j][$i];               
               
                xlsWriteLabel($j,$i,$v);
        }
}
xlsEOF();
}


从excel_class.php中抠出来的代码
作者: HonestQiao    时间: 2007-04-13 21:33
不通过com操作不知道是否可以。

没有实做过,但是告诉你,如果通过com完全可以。
作者: tqjs    时间: 2007-04-13 21:36
原帖由 HonestQiao 于 2007-4-13 21:33 发表
不通过com操作不知道是否可以。

没有实做过,但是告诉你,如果通过com完全可以。

谢谢!
我的代码可以创建一个excel表格,并导入数据,唯一美中不足的就是每列的宽度是一模一样的,不能自己控制它的宽度。至于你说的COM,我也想过,可是我的程序多数是在linux下运行(开发环境才在window),所以没法使用COM
作者: HonestQiao    时间: 2007-04-13 21:40
那就不好办了哦。

你可以看看excel设置一个简单的饿,另存为xml看看是否可以分析,而且被excel导入依然格式正确。
作者: tqjs    时间: 2007-04-13 21:59
原帖由 HonestQiao 于 2007-4-13 21:40 发表
那就不好办了哦。

你可以看看excel设置一个简单的饿,另存为xml看看是否可以分析,而且被excel导入依然格式正确。

听说xml只支持excel2003,不知道是不是真的,再次谢谢朋友的帮助
作者: tqjs    时间: 2007-04-17 08:52
还是没有这方面的高手来指教一下吗
作者: ymzuowei    时间: 2007-04-20 14:51
PEAR::Spreadsheet_Excel_Writer

不过中文支持似乎不太好
作者: gydoesit    时间: 2007-04-23 11:43
帮楼上顶
作者: vtsuper    时间: 2007-04-23 13:41
用com比較容易實現

曾用com的朋友
想請問你們一些經驗,
有沒有試過用word com建立一個有中文繁體字的.doc file,
但每個中文字的尾部都會多出一些無意思的空格???
我從php 4.xx直至現在也有這個問題..但execl是正常的




欢迎光临 Chinaunix (http://bbs.chinaunix.net/) Powered by Discuz! X3.2