This commit is contained in:
Alone
2024-04-26 12:07:45 +08:00
parent e9f4e447ff
commit f3d0694fe1
3 changed files with 69 additions and 25 deletions
+4 -22
View File
@@ -631,44 +631,26 @@ abstract class QfShop
->setDescription("Export by qfshop"); //设置备注
$PHPSheet = $PHPExcel->getActiveSheet();
$PHPSheet->setTitle($this->excelTitle); //给当前活动sheet设置名称
$PHPSheet->mergeCells('A1:' . $this->excelCells[count($excelField) - 1] . "1");
$PHPSheet->setCellValue('A1', $this->excelTitle);
$PHPSheet->getRowDimension(1)->setRowHeight(40);
$PHPSheet->getStyle('A1')->getFont()->setSize(16)->setBold(true); //字体大小
$PHPSheet->getStyle('A1')->getAlignment()->setHorizontal(\PHPExcel_Style_Alignment::HORIZONTAL_CENTER); //水平方向上对齐
$PHPSheet->getStyle('A1')->getAlignment()->setVertical(\PHPExcel_Style_Alignment::VERTICAL_CENTER); //垂直方向上中间居中
$PHPSheet->getStyle('A1')->getAlignment()->setVertical(\PHPExcel_Style_Alignment::VERTICAL_CENTER); //垂直方向上中间居中
if (count($excelField) > count($this->excelCells)) {
echo 'Error and you need check Excel Cells Keys...';
die;
}
$PHPSheet->getRowDimension(2)->setRowHeight(30);
$PHPSheet->getRowDimension(1)->setRowHeight(30);
for ($column = 0; $column < count($excelField); $column++) {
$PHPSheet->setCellValue($this->excelCells[$column] . "2", $excelField[$column][1]);
$PHPSheet->setCellValue($this->excelCells[$column] . "1", $excelField[$column][1]);
$PHPSheet->getStyle($this->excelCells[$column])->getNumberFormat()
->setFormatCode(\PHPExcel_Style_NumberFormat::FORMAT_TEXT);
for ($line = 0; $line < count($datalist); $line++) {
$string = $datalist[$line][$excelField[$column][0]];
$PHPSheet->getColumnDimension($this->excelCells[$column])->setWidth(20);
$PHPSheet->setCellValueExplicit($this->excelCells[$column] . ($line + 3), $string, \PHPExcel_Cell_DataType::TYPE_STRING);
$PHPSheet->setCellValueExplicit($this->excelCells[$column] . ($line + 2), $string, \PHPExcel_Cell_DataType::TYPE_STRING);
}
}
//***********************画出单元格边框*****************************
$styleArray = array(
'borders' => array(
'inside' => array(
'style' => \PHPExcel_Style_Border::BORDER_THIN, //细边框
//'color' => array('argb' => 'FFFF0000'),
),
'outline' => array(
'style' => \PHPExcel_Style_Border::BORDER_THICK, //边框是粗的
//'color' => array('argb' => 'FFFF0000'),
),
),
);
$PHPSheet->getStyle('A2:' . $this->excelCells[count($excelField) - 1] . (count(
$datalist
+52 -3
View File
@@ -217,16 +217,15 @@ class Source extends QfShop
//删除这个文件
unlink("./uploads/".$saveName);
// 生成二维码
foreach ($excel_array as $k => $v) {
$patterns = '/^\d+\.|\d+\-/';
$title = '';
if (preg_match('/http[^ ]+/', $v[2], $matches)) {
if (!empty($v[2]) && preg_match('/http[^ ]+/', $v[2], $matches)) {
$title = preg_replace($patterns, '', $v[1]);
$url = $matches[0];
} else {
if (preg_match('/http[^ ]+/', $v[3], $matches)) {
if (!empty($v[3]) && preg_match('/http[^ ]+/', $v[3], $matches)) {
$title = preg_replace($patterns, '', $v[2]);
$url = $matches[0];
} else {
@@ -420,5 +419,55 @@ class Source extends QfShop
}
return jok('获取成功',$res['data']);
}
/**
* 导出
*
* @return void
*/
public function excel()
{
$error = $this->access();
if ($error) {
return $error;
}
//查询数据
$map = [];
$filter = input('');
foreach ($filter as $k => $v) {
if ($k == 'filter') {
$k = input('filter');
$v = input('keyword');
}
if ($v === '' || $v === null) {
continue;
}
if (array_key_exists($k, $this->searchFilter)) {
switch ($this->searchFilter[$k]) {
case "like":
array_push($map, [$k, 'like', "%" . $v . "%"]);
break;
case "=":
array_push($map, [$k, '=', $v]);
break;
default:
}
}
}
$field = 'title,url';
$dataList = $this->model->field($field)->where($map)->select();
$excelField = [
"title" => "资源名称",
"url" => "资源地址",
];
$data = $dataList->toArray();
$this->excelField = $excelField;
$this->exportExcelData($dataList);
print_r(12);
}
}
+13
View File
@@ -9,6 +9,7 @@
<el-form-item>
<el-button icon="el-icon-plus" size="small" @click="clickAdd" plain>添加资源</el-button>
<el-button icon="el-icon-plus" size="small" @click="ImportShow" plain>导入资源</el-button>
<el-button icon="el-icon-document-copy" size="small" @click="getExport" plain>导出资源</el-button>
</el-form-item>
<div style="float:right">
<el-form-item>
@@ -312,6 +313,18 @@
this.$refs.ImportUpload.submit();
})
},
//数据导出
getExport(){
var that = this;
var filters = Object.assign({}, PostBase, that.search);
var url = '/admin/source/excel?';
for (let key in filters) {
url += key + "=" + filters[key] + "&";
}
window.open(url);
that.$message.success('数据导出成功');
},
}
})
</script>