按月预交明细
房产: #房产编号
业户姓名: #占用者名称 制表日期: #制表日期
项目 说明 充值时间 开始时间 预交金额
管理费 #管理费费用说明 #管理费充值时间 #管理费开始时间 #管理费
租金 #租金费用说明 #租金费充值时间 #租金费开始时间 #租金
电梯分摊 #电梯分摊费用说明 #电梯分摊费充值时间 #电梯分摊费开始时间 #电梯分摊费
推广费 #推广费费用说明 #推广费充值时间 #推广费开始时间 #推广费
预交费用合计: #费用合计因为不能发送EXCEL格式的文件,只好COPY里面的内容了,上面的内容是用户上传的EXCEL文件,我要将里面#开头的字段替换成数据库里面的数据,如果用户有3条数据,就变成下面的EXCEL文件。 按月预交明细
房产: #房产编号
业户姓名: #占用者名称 制表日期: #制表日期
项目 说明 充值时间 开始时间 预交金额
管理费 #管理费费用说明 #管理费充值时间 #管理费开始时间 #管理费
租金 #租金费用说明 #租金费充值时间 #租金费开始时间 #租金
电梯分摊 #电梯分摊费用说明 #电梯分摊费充值时间 #电梯分摊费开始时间 #电梯分摊费
推广费 #推广费费用说明 #推广费充值时间 #推广费开始时间 #推广费
预交费用合计: #费用合计 按月预交明细
房产: #房产编号
业户姓名: #占用者名称 制表日期: #制表日期
项目 说明 充值时间 开始时间 预交金额
管理费 #管理费费用说明 #管理费充值时间 #管理费开始时间 #管理费
租金 #租金费用说明 #租金费充值时间 #租金费开始时间 #租金
电梯分摊 #电梯分摊费用说明 #电梯分摊费充值时间 #电梯分摊费开始时间 #电梯分摊费
推广费 #推广费费用说明 #推广费充值时间 #推广费开始时间 #推广费
预交费用合计: #费用合计 按月预交明细
房产: #房产编号
业户姓名: #占用者名称 制表日期: #制表日期
项目 说明 充值时间 开始时间 预交金额
管理费 #管理费费用说明 #管理费充值时间 #管理费开始时间 #管理费
租金 #租金费用说明 #租金费充值时间 #租金费开始时间 #租金
电梯分摊 #电梯分摊费用说明 #电梯分摊费充值时间 #电梯分摊费开始时间 #电梯分摊费
推广费 #推广费费用说明 #推广费充值时间 #推广费开始时间 #推广费
预交费用合计: #费用合计有#号的会替换,这样的效果如何实现,要将原来EXCEL的样式获得,不是只有数据.
房产: #房产编号
业户姓名: #占用者名称 制表日期: #制表日期
项目 说明 充值时间 开始时间 预交金额
管理费 #管理费费用说明 #管理费充值时间 #管理费开始时间 #管理费
租金 #租金费用说明 #租金费充值时间 #租金费开始时间 #租金
电梯分摊 #电梯分摊费用说明 #电梯分摊费充值时间 #电梯分摊费开始时间 #电梯分摊费
推广费 #推广费费用说明 #推广费充值时间 #推广费开始时间 #推广费
预交费用合计: #费用合计因为不能发送EXCEL格式的文件,只好COPY里面的内容了,上面的内容是用户上传的EXCEL文件,我要将里面#开头的字段替换成数据库里面的数据,如果用户有3条数据,就变成下面的EXCEL文件。 按月预交明细
房产: #房产编号
业户姓名: #占用者名称 制表日期: #制表日期
项目 说明 充值时间 开始时间 预交金额
管理费 #管理费费用说明 #管理费充值时间 #管理费开始时间 #管理费
租金 #租金费用说明 #租金费充值时间 #租金费开始时间 #租金
电梯分摊 #电梯分摊费用说明 #电梯分摊费充值时间 #电梯分摊费开始时间 #电梯分摊费
推广费 #推广费费用说明 #推广费充值时间 #推广费开始时间 #推广费
预交费用合计: #费用合计 按月预交明细
房产: #房产编号
业户姓名: #占用者名称 制表日期: #制表日期
项目 说明 充值时间 开始时间 预交金额
管理费 #管理费费用说明 #管理费充值时间 #管理费开始时间 #管理费
租金 #租金费用说明 #租金费充值时间 #租金费开始时间 #租金
电梯分摊 #电梯分摊费用说明 #电梯分摊费充值时间 #电梯分摊费开始时间 #电梯分摊费
推广费 #推广费费用说明 #推广费充值时间 #推广费开始时间 #推广费
预交费用合计: #费用合计 按月预交明细
房产: #房产编号
业户姓名: #占用者名称 制表日期: #制表日期
项目 说明 充值时间 开始时间 预交金额
管理费 #管理费费用说明 #管理费充值时间 #管理费开始时间 #管理费
租金 #租金费用说明 #租金费充值时间 #租金费开始时间 #租金
电梯分摊 #电梯分摊费用说明 #电梯分摊费充值时间 #电梯分摊费开始时间 #电梯分摊费
推广费 #推广费费用说明 #推广费充值时间 #推广费开始时间 #推广费
预交费用合计: #费用合计有#号的会替换,这样的效果如何实现,要将原来EXCEL的样式获得,不是只有数据.
PHP有开源的EXCEL文档读写类。
var $startrow = 0;
function __construct($fn) {
$this->tpl = PHPExcel_IOFactory::load($fn);
}
function add_data($ar) {
$ar = array_values($ar);
if(!isset($this->target)) $this->target = clone $this->tpl;
$sheet = $this->tpl->getActiveSheet();
$i = 0;
foreach($sheet->getRowDimensions() as $y=>$row) {
foreach($sheet->getColumnDimensions($row) as $x=>$col) {
$txt = trim($sheet->getCell($x.$y)->getValue());
if($txt && $txt{0} == '#') $txt = isset($ar[$i]) ? $ar[$i++] : '';
$h = $y + $this->startrow;
$this->target->getActiveSheet()->getCell("$x$h")->setValue($txt);
$this->target->getActiveSheet()->duplicateStyle($sheet->getStyle("$x$y"), "$x$h");
}
}
//如果模板中有合并的单元格,就做合并单元格操作
foreach($sheet->getMergeCells() as $merge) {
$merge = preg_replace('/\d+/e',"$0+$this->startrow", $merge);
$this->target->getActiveSheet()->mergeCells($merge);
}
$this->startrow += $sheet->getHighestRow() + 3;//多加3行便于裁剪
}
function output($fn) {
$t = PHPExcel_IOFactory::createWriter($this->target, 'Excel5');
$t->save($fn);
}
}
用法$p = new fill_template('tpl.xls');//实例化并加载模板xls
$p->add_data(array(1,2,3,4,5,6,7,8,9));//数据要按模板中“#”出现的次序排列
$p->add_data(array(1,2,3,4,5,6,7,8,9, 'a汉字'));//汉字要用utf-8的
$p->add_data(array(1,2,3,4,5,6,7,8,9));
$p->output('xxx.xls');//输出到文件
<?php
$dbHost = "localhost";
$dbUsername = "root";
$dbPassword = "";
$dbDbName = "rybweb";
$dbTablename = "rybuser";
header("Content-type:charset=gb2312");
header("Cache-Control: no-cache, must-revalidate");
header("Pragma: no-cache");
header('Content-type: application/x-msexcel');
header("Content-Disposition: attachment; filename=$dbTablename.xls" );
header("Content-Description: PHP/INTERBASE Generated Data" );
//输出内容如下:
// connect database$Connect = @mysql_connect($dbHost, $dbUsername, $dbPassword) or die("Couldn't connect.");
$Db = @mysql_select_db($dbDbName, $Connect) or die("Couldn't select database.");
$sql = 'select * from '.$dbTablename.';';
$ALT_Db = @mysql_select_db($dbDbName, $Connect) or die("Couldn't select database");
$result = @mysql_query($sql,$Connect) or die(mysql_error());date_default_timezone_set('Asia/Shanghai');
$now_date = date('Y-m-d H:i:s');
$title = "数据库名:$dbDbName, 数据表:$dbTablename, 备份日期:$now_date";
echo("$title\n");
$sql = 'set names gbk;';
@mysql_query($sql,$Connect);
$sql = 'select * from '.$dbTablename.';';
$ALT_Db = @mysql_select_db($dbDbName, $Connect) or die("Couldn't select database");
$result = @mysql_query($sql,$Connect) or die(mysql_error());$sep = "\t";
for ($i = 0; $i < mysql_num_fields($result); $i++) {
echo mysql_field_name($result,$i) . "\t";
}
print("\n");
$i = 0;
while($row = mysql_fetch_row($result)) {
$schema_insert = "";
for($j=0; $j<mysql_num_fields($result);$j++) {
if(!isset($row[$j]))
$schema_insert .= "NULL".$sep;
elseif ($row[$j] != "")
$schema_insert .= "$row[$j]".$sep;
else
$schema_insert .= "".$sep;
}
$schema_insert = str_replace($sep."$", "", $schema_insert);
$schema_insert .= "\t";
print(trim($schema_insert));
print "\n";
$i++;
}
return (true);
?>還有這一個:
<?php
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;
}// 文件头
header("Pragma: public");
header("Expires: 0");
header("Cache-Control: must-revalidate, post-check=0, pre-check=0");
header("Content-Type: application/force-download");
header("Content-Type: application/octet-stream");
header("Content-Type: application/download");;
header("Content-Disposition: attachment;filename=test.xls ");
header("Content-Transfer-Encoding: binary ");//模拟一个数据出来
$array_info = array(1=>array(10,11,12,12,13,13,13,13,12,9,12),2=>array(9,11,12,12,13,13,8,13,9,12,12),3=>array(5,11,12,12,13,5,5,13,12,12,12),);
// 向表中添加数据
xlsBOF();
xlsWriteLabel(0,5,"XX年XX月报表"); //表头在第一行 下面通过纵坐标的值另起一行
xlsWriteLabel(1,2,"派车号");
xlsWriteLabel(1,3,"派车日期");
xlsWriteLabel(1,4,"运单号");
xlsWriteLabel(1,5,"箱号");
xlsWriteLabel(1,6,"车牌号");
xlsWriteLabel(1,7,"客户海运费");
xlsWriteLabel(1,8,"客户拖车费");
xlsWriteLabel(1,9,"中海拖车费");
xlsWriteLabel(1,10,"应收款");
xlsWriteLabel(1,11,"应付款");
xlsWriteLabel(1,12,"是否结算"); $xlsRow = 2;
if(is_array($array_info)&&count($array_info))
{
foreach($array_info as $key=>$val)
{ xlsWriteNumber($xlsRow,2,$val[0]);
xlsWriteNumber($xlsRow,3,$val[1]);
xlsWriteNumber($xlsRow,4,$val[2]);
xlsWriteNumber($xlsRow,5,$val[3]);
xlsWriteNumber($xlsRow,6,$val[4]);
xlsWriteNumber($xlsRow,7,$val[5]);
xlsWriteNumber($xlsRow,8,$val[6]);
xlsWriteNumber($xlsRow,9,$val[7]);
xlsWriteNumber($xlsRow,10,$val[8]);
xlsWriteNumber($xlsRow,11,$val[9]);
xlsWriteNumber($xlsRow,12,$val[10]);
$xlsRow++;
} } xlsEOF();
exit();
?>都是从硬盘上刚翻出来的,忘记能否用了.