/**
* [export_excel 合同导出]
* [@param itemid:单号]
* @return [type]
*/
public function export_excel() {
//接受数据
$itemid = I('itemid');
$public_m = D('Public');
if ($itemid == '') {
return ;
}
$order_trade_system_m = M('order_trade_system');
$list = $order_trade_system_m->where('tid="' . $itemid . '"')->find(); switch ($list['pay_type']) {
case 'cash':
$list['pay_type'] = '现金支付';
break;
case 'transfers':
$list['pay_type'] = '对公转账';
break;
case 'alipay':
$list['pay_type'] = '支付宝';
break;
default:
break;
}
//获取地址信息
$address_info = D('customer')->address_info($list['address_id']);
$address_info = $address_info['list'];
$receiver_state = $public_m->Get_areaname($address_info['receiver_state']);
$receiver_city = $public_m->Get_areaname($address_info['receiver_city']);
$receiver_district = $public_m->Get_areaname($address_info['receiver_district']);
$address = $receiver_state . $receiver_city . $receiver_district . $address_info['receiver_address'];
//查找供应商名称
$order_customer_m = M('order_customer');
$customer_info = $order_customer_m->where('customer_id="' . $list['customer_id'] . '"')->field('company_name,company_address')->find();
$company_name = $customer_info['company_name'];
$Column_num = ; //列数
$Line_num = ; //行数
$ColumnWidth = array('', '', '', '', '', '', ''); //列宽度
$LineHeight = array('', '', '', '', '', '', ''); //行高度
//设置合并单元格数组
$mergeCells = array('A1:F1', 'A3:C3', 'E3:G3', 'A4:C4', 'E4:G4', 'A7:G7');
$contract_number = $list['contract_number'];
if (empty($contract_number)) {
$contract_number = $public_m->get_contract_number_no();
$list = $order_trade_system_m->where('tid="' . $itemid . '"')->data('contract_number=' . $contract_number . '')->save(); //更新订单数据
} //单元格值
$cell_arr = array(
'A1' => '产品购销合同',
'A3' => '甲方:**科技(上海)有限公司',
'E3' => '合同编号:' . $contract_number,
'A4' => '乙方:' . $company_name,
'E4' => '签定地点:**',
'A6' => '根据《中华人民共和国合同法》的有关规定,甲乙双方经友好协商一致,签订合同。',
'A7' => '一、 产品名称、型号、数量、金额',
'A8' => '序号',
'B8' => '产品名称',
'C8' => '规格型号',
'D8' => '单位',
'E8' => '数量',
'F8' => '单价(元)',
'G8' => '金额(元)',
);
//设置字体样式
$font_arr = array(
'A1' => array('name' => '宋体', 'size' => , 'bold' => true),
'A7' => array('name' => '宋体', 'size' => , 'bold' => true),
'A8' => array('name' => '宋体', 'size' => , 'bold' => true),
'B8' => array('name' => '宋体', 'size' => , 'bold' => true),
'C8' => array('name' => '宋体', 'size' => , 'bold' => true),
'D8' => array('name' => '宋体', 'size' => , 'bold' => true),
'E8' => array('name' => '宋体', 'size' => , 'bold' => true),
'F8' => array('name' => '宋体', 'size' => , 'bold' => true),
'G8' => array('name' => '宋体', 'size' => , 'bold' => true),
);
//对齐方式
$align_arr = array(
//水平对齐
'h' => array(
'left' => array('A2', 'A3', 'A4'),
'center' => array('A1', 'A5', 'B5', 'B8', 'A8', 'C8', 'D8', 'E8', 'F8', 'G8', 'E4'),
'right' => array('B2', 'E3')
),
//垂直对齐
'v' => array(
'center' => array('A1', 'A2', 'A3', 'A4', 'A8', 'A5', 'B5', 'E3', 'E4', 'A6', 'A8', 'B8', 'C8', 'D4', 'E6', 'F8', 'A7', 'D8', 'E8', 'F8', 'G8'
),
),
);
//设置四边边框
$all_border = array(
'A8', 'B8', 'C8', 'D8', 'E8', 'F8', 'G8'
);
//查看商品详细
$order_sku = M('order_sku');
$data = $order_sku->where('tid="' . $itemid . '"')->select(); foreach ($data as $key => $v) {
$goods[$key]['title'] = $public_m->get_name($v['sku_id'], 'title');
$goods[$key]['number'] = $v['number'];
$goods[$key]['price'] = $v['price'];
$goods[$key]['properties'] = $public_m->get_sku_properties($v['sku_id'], 'sku_id');
$goods[$key]['unit_name'] = $public_m->get_sku_unit($v['sku_id']);
}
//设置循环单元格值
$while_arr = array(
'field' => array('A', 'B', 'C', 'D', 'E', 'F', 'G'),
'start' => ,
'border' => true,
'format' => array('A' => '', 'B' => '@', 'C' => '@', 'D' => '#,##0.00', 'E' => '', 'F' => '#,##0.00', 'G' => '#,##0.00'),
//水平对齐
'align' => array(
'h' => array(
'left' => array('B'), //左对齐
'center' => array('A', 'C', 'D', 'E', 'F', 'G'), //居中对齐
//'right'=>array()//右对齐
),
//垂直对齐
'v' => array(
'center' => array('A', 'B', 'C', 'D', 'E', 'F', 'G'), //水平垂直
),
),
);
foreach ($goods as $row) {
$title = $row['title'];
$number = $row['number'];
$properties = $row['properties'];
$new_price = $number * $row['price'];
$allmoney+=$new_price;
$price = number_format($row['price'], );
$n = $i + ;
$LineHeight[] = ;
$while_arr['list'][] = array($i + , $title, $properties, $row['unit_name'], $number, $price, $new_price); //循环表格数值
$i++;
}
$title = '产品购销合同';
$path = './Public/Data/Order/';
if (!is_dir($path))
mkdir($path, );
$file_name = './Public/Data/Order/' . $contract_number . '.xls';
$all_moeny_capital = $this->cny($allmoney);
$allmoney_str = strstr($allmoney, '.');
if (empty($allmoney_str)) {
$all_moeny_capital = $all_moeny_capital . '整';
}
$allmoney = number_format($allmoney, ); //设置循环尾
$bank_name = C('bank_name');
$account_number = C('account_number');
$last_arr = array(
'jia' => array(''),
'field' => array(
array('A', 'D', 'G'),
array('A'),//
array('A'),//
array('A'),//
array('A'),//
array('A'),//
array('A'),//
array('A'),//
array('A'),//
array('A'),//
array('A'),//
array('A'),//
array('A'),//
array('A'),//
array('A'),//
array('A'),//25----
array('A'),//
array('A'),//
array('A'),//
array('A'),//
array('A'),//
array('A'),//
array('A'),//
array('A'),//
array('A'),//
array('A'),//
array('A'),//
array('A'),//
array('A'),//
array('A'),//
array('A'),//
array('A'),//
array('A'),//
array('A'),//
array('A'),//
array('A'),//
array('A'),//
array('A', 'C'),//
array('A', 'C'),//
array('A', 'C'),//
array('A', 'C'),//
array('A', 'C'),//
array('A', 'C'),//
),
'value' => array(
array('金额合计:' . $all_moeny_capital, '', '¥' . $allmoney),
array(''),
array('二、质量要求、技术标准、供方对质量负责的条件和期限'),
array('按产品规范及有关的国家标准执行,甲方对所供产品在三十日内如出现质量问题,负责退换,质保期半年。'),
array(''),
array('三、交(退)货地点、方式'),
array('由甲方负责将乙方所购产品交付到乙方指定的地点'),
array('乙方指定的送货地址为:' . $address),
array(''),
array('四、运输方式及到达港和费用负担'),
array('甲方负责运输并办理货物运输保险,运输费用及保险费由甲方负担。'),
array(''),
array('五、包装标准、包装物的供应和回收'),
array('包装标准按产品要求和国家标准执行,费用由甲方负担。'),
array(''),
array('六、验收标准、方法、及提出异议期限'), //25---
array('在乙方指定的地点,按产品规范及有关的国家标准验收。'),
array(''),
array('七、   交货期限'),
array('合同签订之日起 3 天内送货至乙方指定的地点。'),
array(''),
array('八、结算方式及期限'),
array('结算方式:' . $list['pay_type']),
array('付款期限:乙方收到货物之日起 2 日内付款至甲方指定账户 '),
array('甲方指定的银行账户如下'),
array('开户行:' . $bank_name),
array('户名:***科技(上海)有限公司'),
array('账号:' . $account_number),
array('九、解决合同纠纷的方式'),
array('执行本合同发生争议,由甲乙双方协商解决,如协商不成可提请仲裁委员会仲裁。'),
array(''),
array('十、其他约定事项'),
array('甲乙双方盖章后生效。如有未尽事宜,甲乙双方协商解决。'),
array(''),
array('十一、 文本'),
array('本合同一式二份,甲乙双方各执一份。'),
array(''),
array('甲方', '乙方'),
array('单位名称:***科技(上海)有限公司', '单位名称:' . $company_name),
array('地址:********', '地址:' . $customer_info['company_address']),
array('法定代表人(盖章):', '法定代表人(盖章):'),
array('时 间: 年 月 日', '时 间: 年 月 日'),
array('电 话:021-60486481', '电 话:'),
),
'cell' => array(
array('A', 'C'),//
array('D', 'F'),//
array('G', 'G'),//
array('A', 'G'),//
array('A', 'G'),//
array('A', 'G'),//
array('A', 'G'),//
array('A', 'G'),//
array('A', 'G'),//
array('A', 'G'),//
array('A', 'G'),//
array('A', 'G'),//
array('A', 'G'),//
array('A', 'G'),//
array('A', 'G'),//
array('A', 'G'),//
array('A', 'G'),//
array('G', 'G'),//
array('A', 'G'),//
array('A', 'G'),//
array('A', 'G'),//
array('A', 'G'),//
array('A', 'G'),//
array('A', 'G'),//
array('A', 'G'),//
array('A', 'G'),//
array('A', 'G'),//
array('A', 'G'),//
array('A', 'G'),//
array('A', 'G'),//
array('A', 'G'),//
array('A', 'G'),//
array('A', 'G'),//
array('A', 'G'),//
array('A', 'G'),//
array('A', 'G'),//
array('A', 'G'),//
array('A', 'G'),//
array('A', 'G'),//
array('A', 'B'),//
array('C', 'G'),//
array('A', 'B'),//
array('C', 'G'),//
array('A', 'B'),//
array('C', 'G'),//
array('A', 'B'),//
array('C', 'G'),//
array('A', 'B'),//
array('C', 'G'),//
array('A', 'B'),//
array('C', 'G'),//
),
'align' => array(
array('h' => 'center', 'v' => 'center'), array(''), array('h' => 'right', 'v' => 'center'), array(''), array(''), array(''), array(''), array(''), array(''), array(''), array(''), array(''), array(''), array(''), array(''), array(''), array(''), array(''), array(''), array(''), array(''), array(''), array(''), array(''), array(''), array(''), array(''), array(''), array(''), array(''), array(''), array(''), array(''), array(''), array(''), array(''), array(''), array(''), array(''), array('h' => 'center', 'v' => 'center'), array('h' => 'center', 'v' => 'center'),
),
'height' => array(''),
'bold' => array('true', 'false', 'true', 'false', 'false', 'true', 'false', 'false', 'false', 'true', 'false', 'false', 'true', 'false', 'false', 'true', 'false', 'true', 'true', 'false', 'false', 'true', 'false', 'false', 'false', 'false', 'false', 'false', 'true', 'false', 'false', 'true', 'false', 'false', 'true'),
'borders' => array(
array('left' => 'true', 'right' => 'true', 'top' => 'true', 'bottom' => 'true'), array(''), array(''), array(''), array(''), array(''), array(''), array(''), array(''), array(''), array(''), array(''), array(''), array(''), array(''), array(''), array(''),
array(''), array(''), array(''), array(''), array(''), array(''), array(''), array(''), array(''), array(''), array(''), array(''), array(''), array(''), array(''), array(''), array(''), array(''), array(''), array(''), array('left' => 'false', 'right' => 'true', 'top' => 'true', 'bottom' => 'false'), array('left' => 'false', 'right' => 'true', 'top' => 'false', 'bottom' => 'false'), array('left' => 'false', 'right' => 'true', 'top' => 'false', 'bottom' => 'false'), array('left' => 'false', 'right' => 'true', 'top' => 'false', 'bottom' => 'false'), array('left' => 'false', 'right' => 'true', 'top' => 'false', 'bottom' => 'false'), array('left' => 'false', 'right' => 'true', 'top' => 'false', 'bottom' => 'true'), array('left' => 'false', 'right' => 'true', 'top' => 'false', 'bottom' => 'true'),
),
);
$res = $public_m->excels($title, $Column_num, $Line_num, $ColumnWidth, $LineHeight, $mergeCells, $cell_arr, $while_arr, $last_arr, $align_arr, $all_border, $font_arr, $file_name, $width_unit);
if ($res == 'OK') {
D('public')->WriteLog(session('user.personnel_code'), '导出合同', $itemid, 'trade');
$data = array('url' => $file_name);
return $data;
}
}
    function cny($ns) {
static $cnums = array("零", "壹", "贰", "叁", "肆", "伍", "陆", "柒", "捌", "玖"),
$cnyunits = array("圆", "角", "分"),
$grees = array("拾", "佰", "仟", "万", "拾", "佰", "仟", "亿");
list($ns1, $ns2) = explode(".", $ns, );
$ns2 = array_filter(array($ns2[], $ns2[]));
$ret = array_merge($ns2, array(implode("", $this->_cny_map_unit(str_split($ns1), $grees)), ""));
$ret = implode("", array_reverse($this->_cny_map_unit($ret, $cnyunits)));
return str_replace(array_keys($cnums), $cnums, $ret);
} function _cny_map_unit($list, $units) {
$ul = count($units);
$xs = array();
foreach (array_reverse($list) as $x) {
$l = count($xs);
if ($x != "" || !($l % ))
$n = ($x == '' ? '' : $x) . ($units[($l - ) % $ul]);
else
$n = is_numeric($xs[][]) ? $x : '';
array_unshift($xs, $n);
}
return $xs;
}

Application\Oa\Model\PublicModel.class.php

    /**
* @desc 自动生成表格
* @param string $title 标题
* @param int $Column_num 列数
* @param int $Line_num 行数
* @param array $ColumnWidth 列宽
* @param array $LineHeight 行高
* @param array $mergeCells 合并单元格数组
* @param array $cell_arr 单元格值
* @param array $while_arr 循环单元格值
* @param array $last_arr 循环尾
* @param array $align_arr 对齐方式
* @param array $all_border 四边边框
* @param array $font_arr 字体样式
* @param string $file_name 文件名
*/
function excels($title, $Column_num, $Line_num, $ColumnWidth, $LineHeight, $mergeCells, $cell_arr, $while_arr, $last_arr, $align_arr, $all_border, $font_arr, $file_name) {
$ColumnName = array('A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z', 'AA', 'AB', 'AC', 'AD', 'AE', 'AF', 'AG', 'AH', 'AI', 'AJ', 'AK', 'AL', 'AM', 'AN', 'AO', 'AP', 'AQ', 'AR', 'AS', 'AT', 'AU', 'AV', 'AW', 'AX', 'AY', 'AZ'); Vendor('Excel.PHPExcel'); // 创建一个处理对象实例
$objExcel = new \PHPExcel(); // 创建文件格式写入对象实例, uncomment
$objWriter = new \PHPExcel_Writer_Excel5($objExcel); //设置文档基本属性
$objProps = $objExcel->getProperties();
$objProps->setCreator("toby");
$objProps->setLastModifiedBy("toby");
$objProps->setTitle($title);
$objProps->setSubject($title);
$objProps->setDescription($title);
$objProps->setKeywords($title);
$objProps->setCategory($title); //缺省情况下,PHPExcel会自动创建第一个sheet被设置SheetIndex=0
$objExcel->setActiveSheetIndex();
$objActSheet = $objExcel->getActiveSheet(); //设置当前活动sheet的名称
$objActSheet->setTitle($title); //设置合并单元格
foreach ($mergeCells as $v) {
$objActSheet->mergeCells($v);
} //设置列宽,
for ($i = ; $i < $Column_num; $i++) {
$objActSheet->getColumnDimension($ColumnName[$i])->setWidth($ColumnWidth[$i]);
} //设置行高度
for ($i = ; $i < $Line_num; $i++) {
$objActSheet->getRowDimension($i + )->setRowHeight($LineHeight[$i]);
} //设置单元格值
foreach ($cell_arr as $k => $v) {
$objActSheet->setCellValue($k, $v);
} //设置循环单元格值
$i = $while_arr['start']; foreach ($while_arr['list'] as $vh) {
$field = $while_arr['field'];
$bord = $while_arr['border'];
$h = $while_arr['align']['h'];
$v = $while_arr['align']['v'];
$format = $while_arr['format'];
//print_r($h);exit;
foreach ($vh as $k => $vs) { //设置单元格格式
$format_k = $format[$field[$k]];
if (!empty($format_k)) {
$objActSheet->getStyle($field[$k] . $i)->getNumberFormat()->setFormatCode($format_k);
}
//设置单元格值
$objActSheet->setCellValue($field[$k] . $i, $vs); //设置四边边框
if ($bord) {
$all_border[] = $ColumnName[$k] . $i;
}
$num = count($align_arr['h']['center']);
//设置水平对齐
$align_arr['h']['center'][$num] = $h['center'][$k] . $i;
//$align_arr['h'][]=array($h[$k]=>$field[$k].$i);
//设置垂直对齐
$num_t = count($align_arr['v']['center']);
$align_arr['v']['center'][$num_t] = $v['center'][$k] . $i;
} $i++;
}
//设置循环尾
$column_s = ;
if (!empty($last_arr['value'])) {
foreach ($last_arr['value'] as $k => $vh) {
$i = $i + $last_arr['jia'][$k];
$field = $last_arr['field'];
$bord = $last_arr['border'];
$align = $last_arr['align'];
$cell = $last_arr['cell'];
$height = $last_arr['height']; $objActSheet->getRowDimension($i)->setRowHeight($height[$k]);
//每列内容
foreach ($vh as $ks => $vs) {
$objActSheet->mergeCells($cell[$column_s][] . $i . ':' . $cell[$column_s][] . $i); //额外
$tmp_st = false;
$tmp = $last_arr['bold'][$k];
$t[] = $tmp;
if ($tmp == 'true') {
$tmp_st = true;
}
//加粗
$objStyleA2 = $objActSheet->getStyle($cell[$column_s][] . $i . ':' . $cell[$column_s][] . $i);
$objFontA2 = $objStyleA2->getFont();
$objFontA2->setBold($tmp_st); //设置四边边框
$m = $last_arr['borders'][$k];
$left = $m['left'];
$right = $m['right'];
$top = $m['top'];
$bottom = $m['bottom'];
if ($left == 'true') {
$objActSheet->getStyle($cell[$column_s][] . $i . ':' . $cell[$column_s][] . $i)->getBorders()->getLeft()->setBorderStyle(\PHPExcel_Style_Border::BORDER_THIN);
}
if ($right == 'true') {
$objActSheet->getStyle($cell[$column_s][] . $i . ':' . $cell[$column_s][] . $i)->getBorders()->getRight()->setBorderStyle(\PHPExcel_Style_Border::BORDER_THIN);
}
if ($top == 'true') {
$objActSheet->getStyle($cell[$column_s][] . $i . ':' . $cell[$column_s][] . $i)->getBorders()->getTop()->setBorderStyle(\PHPExcel_Style_Border::BORDER_THIN);
}
if ($bottom == 'true') {
$objActSheet->getStyle($cell[$column_s][] . $i . ':' . $cell[$column_s][] . $i)->getBorders()->getBottom()->setBorderStyle(\PHPExcel_Style_Border::BORDER_THIN);
} //额外***end
//设置单元格值
$objActSheet->setCellValue($field[$k][$ks] . $i, $vs);
//设置四边边框
if ($bord) {
foreach ($ColumnName as $vv) {
if ($vv == $cell[$column_s][]) {
$j = ;
} elseif ($j <> ) {
continue;
}
$all_border[] = $vv . $i; if ($vv == $cell[$column_s][]) {
break;
}
}
} //设置水平对齐
$align_arr['h'][$align[$column_s]['h']][] = $field[$k][$ks] . $i; //设置垂直对齐
$align_arr['v'][$align[$column_s]['v']][] = $field[$k][$ks] . $i; $column_s++;
} $i++;
}
} //设置水平对齐
foreach ($align_arr['h'] as $k => $v) {
foreach ($v as $vs) {
if ($k == 'left') {
$objActSheet->getStyle($vs)->getAlignment()->setHorizontal(\PHPExcel_Style_Alignment::HORIZONTAL_LEFT);
}
if ($k == 'center') {
$objActSheet->getStyle($vs)->getAlignment()->setHorizontal(\PHPExcel_Style_Alignment::HORIZONTAL_CENTER);
}
if ($k == 'right') {
$objActSheet->getStyle($vs)->getAlignment()->setHorizontal(\PHPExcel_Style_Alignment::HORIZONTAL_RIGHT);
}
}
} //设置垂直对齐
foreach ($align_arr['v'] as $k => $v) {
foreach ($v as $vs) {
if ($k == 'top') {
$objActSheet->getStyle($vs)->getAlignment()->setVertical(\PHPExcel_Style_Alignment::VERTICAL_TOP);
}
if ($k == 'center') {
$objActSheet->getStyle($vs)->getAlignment()->setVertical(\PHPExcel_Style_Alignment::VERTICAL_CENTER);
}
if ($k == 'bottom') {
$objActSheet->getStyle($vs)->getAlignment()->setVertical(\PHPExcel_Style_Alignment::VERTICAL_BOTTOM);
}
}
}
//设置字体样式
foreach ($font_arr as $k => $v) {
$objStyleA1 = $objActSheet->getStyle($k);
$objFontA1 = $objStyleA1->getFont();
$objFontA1->setName($v['name']);
$objFontA1->setSize($v['size']);
$objFontA1->setBold($v['bold']);
}//设置四边边框
foreach ($all_border as $v) { $objActSheet->getStyle($v)->getBorders()->getTop()->setBorderStyle(\PHPExcel_Style_Border::BORDER_THIN);
$objActSheet->getStyle($v)->getBorders()->getLeft()->setBorderStyle(\PHPExcel_Style_Border::BORDER_THIN);
$objActSheet->getStyle($v)->getBorders()->getRight()->setBorderStyle(\PHPExcel_Style_Border::BORDER_THIN);
$objActSheet->getStyle($v)->getBorders()->getBottom()->setBorderStyle(\PHPExcel_Style_Border::BORDER_THIN);
}
//输出内容
$objWriter->save($file_name); //print_r($last_arr['value']);print_r($t);print_r($last_arr['bold']);exit;
return "OK";
}

导出模板

php导出合同模板到excel的更多相关文章

  1. freemarker导出复杂样式的Excel

    freemarker导出复杂样式的Excel 代码地址: gitee https://gitee.com/suveng/demo/tree/master/chapter.002 代码存放于demo下面 ...

  2. SpringBoot集成MongoDB之导入导出和模板下载

    前言 自己很对自己在项目中集成MongoDb做的导入导出以及模板下载的方法总结如下,有不到之处敬请批评指正! 1.pom.xml依赖引入 <!-- excel导入导出 --> <de ...

  3. PHP导出MySQL数据到Excel文件

    PHP导出MySQL数据到Excel文件 转载 常会碰到需要从数据库中导出数据到Excel文件,用一些开源的类库,比如PHPExcel,确实比较容易实现,但对大量数据的支持很不好,很容易到达PHP内存 ...

  4. Eclipse/MyEclipse导入导出注释模板

    1.Eclipse/MyEclipse导入注释模板 (1)打开Eclipse/MyEclipse工具,打开或创建一个Java工程,点击菜单Window->Preferences弹出首选项设置窗口 ...

  5. vmwear导出OVF模板解析(解决ovf导入服务器失败问题,虚拟机版本等)

    我们将vmwear虚拟机导出ovf模板后,有三个文件: 1,.mf 保存着.ovf和.vmdk两个文件的SHA1值,用于校验文件的完整性 2,.ovf 以XML格式保存着虚拟机的配置信息 3,.vmd ...

  6. 如何导出标准模板库(STL)类的实例化和包含STL类对象数据成员的类

    本文翻译自 https://support.microsoft.com/zh-cn/help/168958/how-to-export-an-instantiation-of-a-standard-t ...

  7. 在ASP.NET中将GridView数据导出到Word、Excel

    在ASP.NET中将GridView数据导出到Word.Excel asp.net,导出gridview数据到Word,Excel,PDF   #region Export to Word, Exce ...

  8. java通过FreeMarker模板生成Excel文件之.ftl模板制作

    关于怎么通过freemarker模板生成excel的文章很多,关键点在于怎么制作模板文件.ftl 网上的办法是: (1)把Excel模板的格式调好,另存为xml文件 (2)新建一个.ftl文件,把xm ...

  9. js导出table中的EXCEL总结

    导出EXCEL通常是用PHP做,可是项目中,有时候PHP后端project师返回的数据不是我们想要的,作为前端开发project师,把相应的数据编号转换为文字后,展示给用户.可是.需求要把数据同一时候 ...

随机推荐

  1. Vacuum Pump Manufacturer Introduction: Airless Pump Bottle

    Fillable vacuum pump bottle with matt silver aluminum base and cap and shiny silver aluminum collar. ...

  2. 下载安装charles并导入证书、使用

    抓包原理 1.截获真实客户端的 HTTPS请求,伪装客户端向真实服务端发送 HTTPS 请求. 2.接受真实服务器响应,用 Charles 自己证书伪装服务端向真实客户端发送内容 3.证书导入 看博客 ...

  3. 数据库先系统与原理第三章笔记:数据库SQL查询语言

    SQL概述 SQL发展 SQL特点 SQL查询基本概念 单表查询 投影查询 1.查询指定列: SELECT 列名1,列名2,列名3,.....FROM Table_Name; #查询全部列:SELEC ...

  4. Android开发:界面设计之六大layouts介绍

    1.帧布局 FrameLayout: FrameLayout是最简单的布局对象.在它里面的的所有显示对象都将固定在屏幕的左上角,不能指定位置,后一个会直接覆盖在前一个之上显示 因为上面的一段话这个是在 ...

  5. JavaScript学习笔记----- 继承的实现及其原理

    按照自己在极客上学习的顺序整理了一下,参考了几位前辈的随笔,十分感谢:                       参见http://blog.yemou.net/article/query/info ...

  6. Spring Cloud 从入门到入门

    参考:https://blog.csdn.net/hellozpc/article/details/83692496 参考:https://www.fangzhipeng.com/spring-clo ...

  7. RGB 和 YUV 的转换公式

  8. 「NOI2005」维护数列

    「NOI2005」维护数列 传送门 维护过程有点像线段树. 但我们知道线段树的节点并不是实际节点,而平衡树的节点是实际节点. 所以在向上合并信息时要加入根节点信息. 然后节点再删除后编号要回退(栈), ...

  9. PaperReading20200222

    CanChen ggchen@mail.ustc.edu.cn   VS-GAE Motivation: With the publication of NAS101, researchers can ...

  10. 有关vector元素的取地址

    1--原则上,最好不要对vector的元素取地址,除非所有的vector元素已经填充完毕,这样vector的元素不会发生位置移动,地址才不会变,这样才能确保取得的地址的有效性.PS:即使在可以用已经分 ...