我有一个php
应用程序,我想从excel读取数据,插入数据库,然后为特定用户生成pdf报告.我在互联网上搜索了很多,但没有具体说明这两件事.如果有人可以提供教程或其他东西,那将是一个真正的帮助.
我正在尝试自动调整工作表的列数.我正在编写文件,最后我尝试调整所有列的大小.
// Add some data
$objPHPExcel->setActiveSheetIndex(0)
->setCellValue('B1', 'test1111111111111111111111')
->setCellValue('C1', 'test1111111111111')
->setCellValue('D1', 'test1111111')
->setCellValue('E1', 'test11111')
->setCellValue('F1', 'test1')
->setCellValue('G1', 'test1');
foreach($objPHPExcel->getActiveSheet()->getColumnDimension() as $col) {
$col->setAutoSize(true);
}
$objPHPExcel->getActiveSheet()->calculateColumnWidths();
Run Code Online (Sandbox Code Playgroud)
上面的代码不起作用.不会更改列大小以适合文本
更新
我正在使用的作家$objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel5');
你好,我是phpexcel的新手,我想知道是否有某种方式将我创建的excel发送到客户端下载而不保存在我的服务器上或者在下载后立即将其删除
我正在尝试在页面上创建一个"导出按钮",该页面将为用户提供他想要我刚刚创建的excel的"弹出窗口".
现在我创建表后,我做:
$objXLS->getActiveSheet()->getColumnDimension("A")->setAutoSize(true);
$objXLS->getActiveSheet()->getColumnDimension("B")->setAutoSize(true);
$objXLS->getActiveSheet()->setTitle('Test Stats');
$objXLS->setActiveSheetIndex(0);
$objWriter = PHPExcel_IOFactory::createWriter($objXLS, 'Excel5');
$objWriter->save(__DIR__."/test1.xls");
Run Code Online (Sandbox Code Playgroud)
但是它将它保存到我的服务器上
谢谢
我想让第一排的细胞变得粗体.
这是我为此目的创建的方法.
function ExportToExcel($tittles,$excel_name)
{
$objPHPExcel = new PHPExcel();
$objRichText = new PHPExcel_RichText();
// Set properties
$objPHPExcel->getProperties()->setCreator("SAMPLE1");
$objPHPExcel->getProperties()->setLastModifiedBy("SAMPLE1");
$objPHPExcel->getProperties()->setTitle("SAMPLE1");
$objPHPExcel->getProperties()->setSubject("SAMPLE1");
$objPHPExcel->getProperties()->setDescription("SAMPLE1");
// Add some data
$objPHPExcel->setActiveSheetIndex(0);
$letters = range('A','Z');
$count =0;
$cell_name="";
foreach($tittles as $tittle)
{
$cell_name = $letters[$count]."1";
$count++;
$value = $tittle;
$objPHPExcel->getActiveSheet()->SetCellValue($cell_name, $value);
// Make bold cells
$objPHPExcel->getActiveSheet()->getStyle($cell_name)->getFont()->setBold(true);
}
// Save Excel 2007 file
$objWriter = new PHPExcel_Writer_Excel2007($objPHPExcel);
//$objWriter->save(str_replace('.php', '.xlsx', __FILE__));
$objWriter->save($excel_name.".xlsx");
}
Run Code Online (Sandbox Code Playgroud)
问题出在输出excel文件中,单元格不是粗体.
我正在尝试使用PHPExcel生成的Excel文档中设置单元格的宽度:
$objPHPExcel->getActiveSheet()->getColumnDimensionByColumn('C')->setWidth('10');
$objPHPExcel->getActiveSheet()->getColumnDimensionByColumn('C')->setAutoSize(false);
Run Code Online (Sandbox Code Playgroud)
但那不起作用.
我需要在这里打电话的方法是什么?
如何将文本中心"测试"?
这是我的代码:
<?php
/** Error reporting */
error_reporting(E_ALL);
ini_set('display_errors', TRUE);
ini_set('display_startup_errors', TRUE);
date_default_timezone_set('Europe/London');
/** Include PHPExcel */
require_once '../Classes/PHPExcel.php';
$objPHPExcel = new PHPExcel();
$sheet = $objPHPExcel->getActiveSheet();
$sheet->setCellValueByColumnAndRow(0, 1, "test");
$sheet->mergeCells('A1:B1');
$objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel2007');
$objWriter->save("test.xlsx");
Run Code Online (Sandbox Code Playgroud)
输出Excel文档:
首先,我是PHPExcel的新手.我知道这行代码将使单元格文本换行:
$objPHPExcel->getActiveSheet()->getStyle('D1')->getAlignment()->setWrapText(true);
Run Code Online (Sandbox Code Playgroud)
'D1'是选定的细胞.
而不是将此代码用于我需要包装的每个单元格,有没有办法让整个Excel工作表自动包装所有内容?
或者是否有更好的练习技术用于指定的列?
我在PHPExcel工作.我是初学者.当我使用以下代码并且工作正常时.
$phpExcel = new PHPExcel();
$phpExcel->getActiveSheet()->getStyle("A1")->getFont()->setBold(true)
->setName('Verdana')
->setSize(10)
->getColor()->setRGB('6F6F6F');
Run Code Online (Sandbox Code Playgroud)
但是,当我使用以下代码并且没有获得如上所述的预期结果时.
$phpFont = new PHPExcel_Style_Font();
$phpFont->setBold(true);
$phpFont->setName('Verdana');
$phpFont->setSize(15);
$phpColor = new PHPExcel_Style_Color();
$phpColor->setRGB('FF0000');
$phpExcel->getActiveSheet()->getStyle('A1')->setFont( $phpFont );
$phpExcel->getActiveSheet()->getStyle('A1')->getFont()->setColor( $phpColor );
Run Code Online (Sandbox Code Playgroud)
请帮助我在上面的代码中做错了什么.
先感谢您!