|
@@ -116,8 +116,8 @@ function export($columns, $rows, $filename = "jjrcw", $settings = [], $sheetname
|
|
|
//设置正文内容
|
|
|
for ($i = 0; $i < $rowCount; $i++) {
|
|
|
for ($n = 0; $n < $colCount; $n++) {
|
|
|
- if (is_numeric($rows[$i][$n]) && strlen($rows[$i][$n]) > 17) {
|
|
|
- //超过17位的数字转成文本方以免被转化为科学数
|
|
|
+ if (is_numeric($rows[$i][$n]) && strlen($rows[$i][$n]) > 11) {
|
|
|
+ //超过11位的数字转成文本方以免被转化为科学数
|
|
|
$objPHPExcel->setCellValueExplicit(getExcelColumnByIndex($n) . ($rowStartLine + $i), $rows[$i][$n], $datatype::TYPE_STRING);
|
|
|
} else {
|
|
|
$objPHPExcel->setCellValue(getExcelColumnByIndex($n) . ($rowStartLine + $i), $rows[$i][$n]);
|
|
@@ -127,7 +127,8 @@ function export($columns, $rows, $filename = "jjrcw", $settings = [], $sheetname
|
|
|
$objPHPExcel->getDefaultColumnDimension()->setWidth(16); //默认列宽
|
|
|
$objPHPExcel->getDefaultRowDimension()->setRowHeight(30); //默认列高
|
|
|
//样式设置
|
|
|
- $settings = $settings ?: getCommonExcelSetting($colCount, $rowCount);
|
|
|
+ $defaultSetting = getCommonExcelSetting($colCount, $rowCount);
|
|
|
+ $settings = $settings ? array_merge($defaultSetting, $settings) : $defaultSetting;
|
|
|
foreach ($settings as $type => $cfg) {
|
|
|
switch ($type) {
|
|
|
case "width":
|
|
@@ -199,11 +200,29 @@ function export($columns, $rows, $filename = "jjrcw", $settings = [], $sheetname
|
|
|
$objPHPExcel->getStyle($cfg[$i][0])->getFont()->getColor()->setARGB($cfg[$i][1]);
|
|
|
}
|
|
|
break;
|
|
|
+ case "format":
|
|
|
+ for ($i = 0; $i < count($cfg); $i++) {
|
|
|
+ switch ($cfg[$i][0]) {
|
|
|
+ case "string":
|
|
|
+ $objPHPExcel->getStyle($cfg[$i][1])->getNumberFormat()->setFormatCode(PhpOffice\PhpSpreadsheet\Style\NumberFormat::FORMAT_TEXT);
|
|
|
+ break;
|
|
|
+ case "usd":
|
|
|
+ $objPHPExcel->getStyle($cfg[$i][1])->getNumberFormat()->setFormatCode(PhpOffice\PhpSpreadsheet\Style\NumberFormat::FORMAT_CURRENCY_USD_SIMPLE);
|
|
|
+ break;
|
|
|
+ default:
|
|
|
+ $objPHPExcel->getStyle($cfg[$i][1])->getNumberFormat()->setFormatCode(PhpOffice\PhpSpreadsheet\Style\NumberFormat::FORMAT_NUMBER_COMMA_SEPARATED2);
|
|
|
+ break;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ break;
|
|
|
case "wrap":
|
|
|
for ($i = 0; $i < count($cfg); $i++) {
|
|
|
$objPHPExcel->getStyle($cfg[$i])->getAlignment()->setWrapText(true); //cellvalue包含\n设为自动换行
|
|
|
}
|
|
|
break;
|
|
|
+ case "scale":
|
|
|
+ $objPHPExcel->getSheetView()->setZoomScale($cfg ?: 100);
|
|
|
+ break;
|
|
|
}
|
|
|
}
|
|
|
|
|
@@ -477,27 +496,29 @@ function getJsonConfig($filepath, $field) {
|
|
|
}
|
|
|
return null;
|
|
|
}
|
|
|
+
|
|
|
//加密前补齐
|
|
|
-function mystr_pad($data,$len = 16){
|
|
|
+function mystr_pad($data, $len = 16) {
|
|
|
$n = $len - strlen($data) % $len;
|
|
|
$data = $data . str_repeat(chr($n), $n);
|
|
|
return $data;
|
|
|
}
|
|
|
+
|
|
|
// 解密后去掉补齐
|
|
|
-function mystr_unpad($data){
|
|
|
- $n = ord(substr($data,-1));
|
|
|
+function mystr_unpad($data) {
|
|
|
+ $n = ord(substr($data, -1));
|
|
|
return substr($data, 0, -$n);
|
|
|
}
|
|
|
|
|
|
//计算两个日期的时间差
|
|
|
-function diffDate($date1,$date2){
|
|
|
+function diffDate($date1, $date2) {
|
|
|
if (strtotime($date1) > strtotime($date2)) {
|
|
|
$ymd = $date2;
|
|
|
$date2 = $date1;
|
|
|
$date1 = $ymd;
|
|
|
}
|
|
|
- $date1 = date('Y-m-d',strtotime($date1));
|
|
|
- $date2 = date('Y-m-d',strtotime($date2));
|
|
|
+ $date1 = date('Y-m-d', strtotime($date1));
|
|
|
+ $date2 = date('Y-m-d', strtotime($date2));
|
|
|
list($y1, $m1, $d1) = explode('-', $date1);
|
|
|
list($y2, $m2, $d2) = explode('-', $date2);
|
|
|
$y = $m = $d = $_m = 0;
|
|
@@ -512,7 +533,7 @@ function diffDate($date1,$date2){
|
|
|
return array($y, $m, $d);
|
|
|
}
|
|
|
|
|
|
-function formatDateByMonth($date1,$date2,$data = []){
|
|
|
+function formatDateByMonth($date1, $date2, $data = []) {
|
|
|
if (strtotime($date1) > strtotime($date2)) {
|
|
|
$ymd = $date2;
|
|
|
$date2 = $date1;
|
|
@@ -521,12 +542,12 @@ function formatDateByMonth($date1,$date2,$data = []){
|
|
|
$sTime = strtotime(date('Y-m-01', strtotime($date1)));
|
|
|
$eTime = strtotime(date('Y-m-01', strtotime($date2)));
|
|
|
$month_arr = [];
|
|
|
- for($sTime; $sTime <= $eTime; $sTime = strtotime('+1 month', $sTime)){
|
|
|
- $month_arr[date('Ym',$sTime)] = date('Y-m',$sTime); // 取得递增月;
|
|
|
+ for ($sTime; $sTime <= $eTime; $sTime = strtotime('+1 month', $sTime)) {
|
|
|
+ $month_arr[date('Ym', $sTime)] = date('Y-m', $sTime); // 取得递增月;
|
|
|
}
|
|
|
- if(is_array($data) && count($data) > 0){
|
|
|
+ if (is_array($data) && count($data) > 0) {
|
|
|
foreach ($data as $item) {
|
|
|
- if(array_key_exists($item['aae003'],$month_arr)){
|
|
|
+ if (array_key_exists($item['aae003'], $month_arr)) {
|
|
|
$month_arr[$item['aae003']] .= "<span style='color:green'>已缴费</span>";
|
|
|
}
|
|
|
}
|
|
@@ -534,14 +555,14 @@ function formatDateByMonth($date1,$date2,$data = []){
|
|
|
return $month_arr;
|
|
|
}
|
|
|
|
|
|
-function proSearch($str,$arr){
|
|
|
+function proSearch($str, $arr) {
|
|
|
|
|
|
$match_res = [];
|
|
|
- array_filter($arr,function($arr) use ($str,&$match_res){
|
|
|
- if(stripos($arr['value'],$str) !== false){
|
|
|
+ array_filter($arr, function($arr) use ($str, &$match_res) {
|
|
|
+ if (stripos($arr['value'], $str) !== false) {
|
|
|
$match_res[] = $arr['value'];
|
|
|
return true;
|
|
|
- }else{
|
|
|
+ } else {
|
|
|
return false;
|
|
|
}
|
|
|
});
|