作者 郭文星

123

... ... @@ -127,4 +127,52 @@ class Project extends Backend
}
$this->success();
}
public function downloadexcel($ids){
$workinghours=Db::name("workinghours")
->alias("a")
->join("user b","a.user_id=b.id")
->where("project_id",$ids)
->select();
$project=Db::name("project")->where("id",$ids)->find();
$res=$this->projectexcel($workinghours,$project);
return $res;
}
/**
*导出表
*/
public function projectexcel($workinghours, $project)
{
vendor('phpoffice.phpexcel.PHPExcel');
Vendor('phpoffice.phpexcel.Classes.PHPExcel');
Vendor('phpoffice.phpexcel.Classes.PHPExcel.IOFactory.PHPExcel_IOFactory');
//实例化
$objExcel = new \PHPExcel();
//设置文档属性
$objWriter = \PHPExcel_IOFactory::createWriter($objExcel, 'Excel2007');
//设置内容
$objActSheet = $objExcel->getActiveSheet();
$key = ord("A");
$letter = explode(',', "A,B,C,D,E");
$arrHeader = array('序号', '项目名称', '提交人','工时','提交时间');
//填充表头信息
$lenth = count($arrHeader);
for ($i = 0; $i < $lenth; $i++) {
$objActSheet->setCellValue("$letter[$i]1", "$arrHeader[$i]");
};
//填充表格信息
foreach ($workinghours as $k => $v) {
$j = $k + 1;
$k += 2;
$objActSheet->setCellValue('A' . $k, $j);
$objActSheet->setCellValue('B' . $k, $project['project_name']);
$objActSheet->setCellValue('C' . $k, $v['username']);
$objActSheet->setCellValue('D' . $k, $v['working_hours']);
$objActSheet->setCellValue('E' . $k, date("Y-m-d",$v['reporttime']));
}
$outfile = $project['project_name'] . ".xlsx";
$objWriter->save('./datauploads/' . $outfile);
return $outfile;
}
}
... ...
<?php
return [
'name' => '我的网站',
return array (
'name' => '项目工时管理系统',
'beian' => '',
'cdnurl' => '',
'version' => '1.0.1',
'version' => '1.0.2',
'timezone' => 'Asia/Shanghai',
'forbiddenip' => '',
'languages' => [
'languages' =>
array (
'backend' => 'zh-cn',
'frontend' => 'zh-cn',
],
),
'fixedpage' => 'dashboard',
'categorytype' => [
'categorytype' =>
array (
'default' => 'Default',
'page' => 'Page',
'article' => 'Article',
'test' => 'Test',
],
'configgroup' => [
),
'configgroup' =>
array (
'basic' => 'Basic',
'email' => 'Email',
'dictionary' => 'Dictionary',
'user' => 'User',
'example' => 'Example',
],
'attachmentcategory' => [
'category1' => 'Category1',
'category2' => 'Category2',
'custom' => 'Custom',
],
),
'mail_type' => '1',
'mail_smtp_host' => 'smtp.qq.com',
'mail_smtp_port' => '465',
... ... @@ -37,4 +35,10 @@ return [
'mail_smtp_pass' => 'password',
'mail_verify_type' => '2',
'mail_from' => '10000@qq.com',
];
'attachmentcategory' =>
array (
'category1' => 'Category1',
'category2' => 'Category2',
'custom' => 'Custom',
),
);
... ...
... ... @@ -34,7 +34,22 @@ define(['jquery', 'bootstrap', 'backend', 'table', 'form'], function ($, undefin
{field: 'department.name', title: __('Department_id'), operate: 'LIKE', table: table, class: 'autocontent', formatter: Table.api.formatter.content},
{field: 'user.username', title: __('User_id'), operate: 'LIKE'},
{field: 'createtime', title: __('Createtime'), operate:'RANGE', addclass:'datetimerange', autocomplete:false, formatter: Table.api.formatter.datetime},
{field: 'operate', title: __('Operate'), table: table, events: Table.api.events.operate, formatter: Table.api.formatter.operate}
{field: 'operate', title: __('Operate'), table: table, events: Table.api.events.operate, formatter: Table.api.formatter.operate,
buttons: [
{
name: 'ajax',
title: "下载报表",
text: "下载报表",
classname: 'btn btn-xs btn-warning btn-magic btn-ajax',
icon: 'fa fa-paper-plane',
confirm: function (row) {
return "确认下载报表"
},
url: 'project/downloadexcel?id={id}',
}
]}
]
]
});
... ...