首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

PhpSpreadsheet在XLSX中有边框,但在带有mPDF类的PDF中没有边框

PhpSpreadsheet是一个用于读写电子表格文件的PHP库。它支持多种电子表格格式,包括XLSX。在XLSX文件中,可以通过设置边框属性来为单元格添加边框。

然而,在使用带有mPDF类的PDF时,PhpSpreadsheet生成的PDF文件中可能没有边框。这是因为mPDF类在默认情况下不会自动为单元格添加边框样式。

要在带有mPDF类的PDF中添加边框,可以通过以下步骤实现:

  1. 在使用PhpSpreadsheet生成电子表格文件时,确保为需要添加边框的单元格设置了正确的边框样式。可以使用PhpSpreadsheet提供的getStyle()方法获取单元格的样式对象,并使用getBorders()方法获取边框对象。然后,可以使用边框对象的方法(如setBorderStyle()setBorderColor()等)设置边框样式。
  2. 在生成PDF文件之前,将PhpSpreadsheet生成的电子表格文件保存为临时文件。可以使用save()方法将电子表格保存为文件,然后使用getTemporaryFile()方法获取临时文件的路径。
  3. 使用mPDF类加载临时文件,并在加载时设置边框样式。可以使用mPDF类的SetHTMLHeader()方法设置PDF文件的页眉,然后在页眉中添加CSS样式,为表格添加边框样式。例如,可以使用CSS的border属性为表格添加边框样式。

以下是一个示例代码片段,演示如何使用PhpSpreadsheet和mPDF类生成带有边框的PDF文件:

代码语言:txt
复制
<?php
require 'vendor/autoload.php';

use PhpOffice\PhpSpreadsheet\IOFactory;
use PhpOffice\PhpSpreadsheet\Spreadsheet;
use PhpOffice\PhpSpreadsheet\Style\Border;
use Mpdf\Mpdf;

// 创建一个新的电子表格对象
$spreadsheet = new Spreadsheet();
$sheet = $spreadsheet->getActiveSheet();

// 设置单元格内容和边框样式
$sheet->setCellValue('A1', 'Hello');
$sheet->setCellValue('B1', 'World');
$style = $sheet->getStyle('A1:B1');
$style->getBorders()->getAllBorders()->setBorderStyle(Border::BORDER_THIN);

// 保存电子表格文件为临时文件
$writer = IOFactory::createWriter($spreadsheet, 'Xlsx');
$tempFile = tempnam(sys_get_temp_dir(), 'spreadsheet_');
$writer->save($tempFile);

// 使用mPDF类加载临时文件,并设置边框样式
$mpdf = new Mpdf();
$mpdf->SetHTMLHeader('<style>.bordered-table { border-collapse: collapse; } .bordered-table td { border: 1px solid black; }</style>');
$mpdf->WriteHTML('<table class="bordered-table">' . file_get_contents($tempFile) . '</table>');
$mpdf->Output();

// 删除临时文件
unlink($tempFile);
?>

在上述示例中,我们首先使用PhpSpreadsheet创建一个包含边框样式的电子表格文件。然后,我们将电子表格文件保存为临时文件,并使用mPDF类加载临时文件。在加载时,我们使用SetHTMLHeader()方法设置PDF文件的页眉,其中包含了为表格添加边框样式的CSS代码。最后,我们使用WriteHTML()方法将表格内容写入PDF文件,并通过Output()方法输出PDF文件。

这样,我们就可以生成带有边框的PDF文件了。

腾讯云相关产品和产品介绍链接地址:

  • 腾讯云对象存储(COS):https://cloud.tencent.com/product/cos
  • 腾讯云云服务器(CVM):https://cloud.tencent.com/product/cvm
  • 腾讯云云原生容器服务(TKE):https://cloud.tencent.com/product/tke
  • 腾讯云人工智能(AI):https://cloud.tencent.com/product/ai
  • 腾讯云物联网(IoT):https://cloud.tencent.com/product/iot
  • 腾讯云移动开发(移动推送、移动分析、移动测试等):https://cloud.tencent.com/product/mobile
  • 腾讯云数据库(MySQL、Redis、MongoDB等):https://cloud.tencent.com/product/cdb
  • 腾讯云区块链(BCS):https://cloud.tencent.com/product/bcs
  • 腾讯云视频处理(点播、直播、转码等):https://cloud.tencent.com/product/vod
  • 腾讯云音视频通信(TRTC):https://cloud.tencent.com/product/trtc
  • 腾讯云安全产品(WAF、DDoS防护等):https://cloud.tencent.com/product/saf
  • 腾讯云元宇宙(Tencent Real-Time Render):https://cloud.tencent.com/product/trr
页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

PhpOfficePhpSpreadsheet读取和写入Excel

$writer->save('hello.xlsx'); 运行代码,你会发现在目录下生成一个hello.xlsx文件,打开Excel文件,你会看到Excel单元格A1中有“Welcome to...PhpSpreadsheet特性 支持读取.xls,.xlsx,.html,.csv等格式文件,支持写入导出.xls,.xlsx,.html,.csv,.pdf格式文件。...卓越性能,尤其PHP7上表现优异,比PHPExcel强大很多。 2....使用PhpSpreadsheet将Excel导入到MySQL数据库 导入Excel 思路:使用PhpSpreadsheet读取Excel表格有用信息,然后组装成sql语句,最后批量插入到MySQL表...注意是表格数据是从第3行开始,因为第1,2行是表头占用了。 然后,我们设置整个表格样式,给表格加上边框,并且居中对齐。

6.2K32
  • Laravel-Excel导出功能文档

    ; 导出到PDF 如果要导出文件到pdf,需要使用composer安装如下扩展之一 "dompdf/dompdf": "~0.6.1", "mpdf/mpdf": "~6.1" "tecnick.com...public function getFilename() { return 'filename'; } } 使用方法 你可以注入 NewExcelFile到控制器构造方法或普通方法...保存文件到默认storage目录 默认情况下,导出文件会存储到storage/exports文件夹下,这个配置被设置config文件export模块 Excel::create('Filename...,这个方法接收和fromArray相同参数 自动产生表头 默认导出文件,会使用数组Array(或者model属性名)作为第一行(表头),你可以配置文件修改这一默认行为excel::export.generate_heading_by_indices...可以设置当前sheet边框,如下: // 设置当前sheet所有边框 $sheet->setAllBorders('thin'); // 设置某个单元格边框 $sheet->setBorder

    13.3K500

    PHP使用PhpSpreadsheet操作Excel实例详解

    分享给大家供大家参考,具体如下: 一、PhpSpreadsheet 介绍 1、PhpSpreadsheet 是什么 PhpSpreadsheet是一个用纯PHP编写库,提供了一组,使您可以读取和写入不同电子表格文件格式... 将电子表格保存到文件 use PhpOffice\PhpSpreadsheet\Writer\Xlsx; $writer = new Xlsx($spreadsheet); $writer-... 将电子表格保存到文件 use PhpOffice\PhpSpreadsheet\Writer\Xlsx; $writer = new Xlsx($spreadsheet); $writer-... 将电子表格保存到文件 use PhpOffice\PhpSpreadsheet\Writer\Xlsx; $writer = new Xlsx($spreadsheet); $writer-...save('1.xlsx'); 2、批量赋值 fromArray 从数组值填充工作表 参数1:数据(数组) 参数2:去除某个值 参数3:从哪个位置开始 <?

    8.8K11

    phpspreadsheet中文手册_php file_put_contents

    一、介绍 用纯 php 编写库,它提供了一组,允许您读取和写入不同电子表格文件格式 支持格式 环境要求 php 5.6 及以上 php_zip 支持并启用 php_xml 支持并启用 php_gd2...; writer = new Xlsx(spreadsheet); $writer->save(‘hello world.xlsx’); 实例 包带了实例代码,位置 vendor/phpoffice/...: 这不是加载文件最有效方法, 并且它缺乏将文件实际读入 Spreadsheet 对象之前以任何方式配置加载器灵活性。...转为数组 文件最后会载入到一个对象,我称为 spreadsheet 工作表对象,这个对象存放着所以工作表集合信息(数据信息和格式信息、工作表信息等)$spreadsheet = PhpOffice...() as cells = data->toArray(); } 结语 PhpSpreadsheet 是非常不错 php 电子表格处理工具,后续有时间在补上写入和导出。

    5.1K40

    网页Office和pdf相关文件导出

    然后你会遇到表格间距不一样问题,我是这么解决,每次我只画表格最小单元边框和上边框,那么到最后它是不是就剩下最大那个表格边框和下边框,这样子就解决了。...这次稍微有点word样子,没有糊哒哒一坨了。 ? 但是这个效果显然是不理想,咦,边框404了。...之前我是用加载相关css,然后用或者id选择器去控制其样式,要不简单粗暴一点,直接style一把梭,好,那我们就试试吧。...注意这里逻辑,我并没有把作者原来那句话干掉,而是判断了csv格式情况,这样是比较严谨,因为作者这样写自然有其道理,我们改源码目的是为了实现我们需求功能而不是干掉原来,因为有可能引发其他问题...因为好像没有API让我们去获取选择器上所定义相关css属性,而你直接写在元素style上是直接可以读到,style权重(1000)也很高。 以上就是今天全部内容,感谢阅读!

    9K10

    JavaScript导出excel文件,并修改文件样式

    工作表对象设置一个单元格对象,是以编码后单元格为属性,进行设置。... XLSX.utils 对象中有一些方法可以对单元格和单元格范围进行转化。...numFmt 样式属性 numFmt 作用是对数字类型单元格进行格式化。 xlsx-style 内置一个 table_fmt 对象,这个对象存储了一些进行格式化规则。...因此,如果需要设置3x3单元格合并后单元格边框,需要为8个不同单元格设置边框: 左侧单元格边框 右侧单元格边框 顶部单元格边框 底部单元格边框 导出文件 xlsx-style 有两个输出数据方法...如果使用 writeFile 方法不需要设置 type 属性,因为 xlsx-style 源码已经将 type 属性设置为 file 了, 而且使用这个方法,也不需要在 wopts 参数设置 bookType

    5.7K30

    Python openpyxl 之 Ex

    在此分享一下学习过程中有关 openpyxl 库基本使用方法和一些心得体会。...read_only参数用于设置文件打开方式,默认为可读可写,该方法最终将返回一个workbook数据对象 # 文件必须是xlsx格式,如果是其他格式执行前可利用win32辅助转化wb = openpyxl.load_workbook...(三)获取行和列 处理Excel表格有时可能需要对表格进行遍历查找,openpyxl便提供了一个行和列生成器(sheet.rows和sheet.columns),这两个生成器里面是每一行(或列)数据...') 设置单元格样式 单元格样式主要包括字体、边框、颜色以及对齐方式等,这些均位于openpyxl.styles库 # 导入字体、边框、颜色以及对齐方式相关库fromopenpyxl.stylesimportFont...其他 在学习过程,发现了一个有趣现象:在对Excel文件利用前面所介绍workbook.save(path+filename)方法保存后,再次打开保存文件时发现之前已合并单元格都只保留了原最左上角单元格边框效果

    2K40

    xlwings自动化帮「房东」生成房租单!

    本程序需要做事就是,将一个excel按照指定字段分组,分解成n个不同excel文件,然后再对这些excel文件,批量调整列宽,设置边框,再截图并保存图片。...() 结果如图所示: 为每个房间都生成一个excel 现在我将结果放入result子文件夹。...Macros: 用干净而强大Python代码替换VBA宏。 UDFs: Python编写用户定义函数(UDF)(仅限Windows)。...pic.api.Copy() # 复制图片 现在使用Pillow获取剪贴板图片并保存起来,没有Pillow库,可以通过pip install Pillow安装。...F:/pandas/item_img/dist/result/201.png") # 保存图片 删除粘贴到excel应用图片: pic.delete() 保存设置好列宽和边框excel表: wb.save

    1.3K10

    ThinkPHP5.1 框架下 PhpSpreadsheet 操作 Excel 表导入导出

    ■☞ 前期准备 提示: 本人整理文章,目前只是针对于 拓展名为 ".xls"和".xlsx" excel 规范文件 ▶ PhpSpreadsheet 安装 建议使用 composer ,执行命令如下...)->importExcelData($file_real_path);",一般是要提取到 Model 操作 ,核心代码如下: /** * 导入 excel 表数据...”) 第二点:操作文件数据不要太大 鄙人测试,一万条 excel 表还是没出问题 如果出现溢出内存问题,第一可考虑 php.ini 增加 memory_limit 限制 如果是百万数据...: 多数言论都是说 —— 操作文件格式没有区分好 ("Xls/Xlsx"); 另有部分言论认为 —— 没有对该文件操作权限 (我整了没用,建议可以多试试!)... "outputDataToExcelFile()"方法,添加一个参数 $sheetTag , 此处提供一个整理过方法如下: //注意我参数不同!注意!!注意!!!

    3.1K30

    技术分享 | Web测试方法与技术之CSS讲解

    HTML 元素样式通常存储层叠样式表。 为什么要使用CSS 使用 CSS 可以定义 HTML 元素显示样式,其实是为了解决内容与表现分离问题。...属性同时有 name1 和 name2 所有元素 .class1 .class2 .name1 .name2 选择作为名 name1 元素后代所有名 name2 元素 元素选择器:tag {...:[属性] {} 选择器 示例 示例说明 [attribute] [target] 选择带有 target 属性所有元素 [attribute=value] [target=_blank] 选择带有...".pdf" 结尾所有元素 [attribute*=value] a[href*="abc"] 选择其 href 属性值包含 "abc" 子串每个元素 CSS创建 外部样式表 <link...border-collapse 设置表格边框是否被折叠成一个单一边框或者隔开 width 定义表格宽度 text-align 表格文本对齐 padding 设置表格填充 <!

    94720
    领券