doushu0591 2015-10-03 15:15
浏览 455
已采纳

PHP_XLSXWriter问题

I am using PHP_XLSXWriter.
I want to do the following expected output:

enter image description here

Here is my code:

<?php
include_once('./PHP_XLSXWriter-master/xlsxwriter.class.php');

$writer = new XLSXWriter();
$sheet_name = 'Sheet1';

$header = array("A", "B", "C");

$writer->writeSheetRow($sheet_name, $header);

$writer->markMergedCell($sheet_name, $start_row = ?, $start_col = ?, $end_row = ?, $end_col = ?);

$writer->writeToFile('test.xlsx');
?>

How should control ? in my code?

  • 写回答

1条回答 默认 最新

  • duandang6352 2015-10-03 16:51
    关注

    There can be better options to do this, but I could do only this kind of a workaround. It may be helpful for you.

    <?php
    include_once("xlsxwriter.class.php"); //include
    $writer = new XLSXWriter();     //new writer
    $sheet_name = 'sheets';   //sheetname
    $header = array("string","string","string","string","string","string");  // header-made for six columns
    $row1 = array("A"," ","B"," ","C"); //column B1, D1 made blank to match formatting
    $writer->writeSheetHeader($sheet_name, $header, $suppress_header_row = true);   //write header
    $writer->markMergedCell($sheet_name, $start_row = 0, $start_col = 0, $end_row = 1, $end_col = 1);  //merge cells for A
    $writer->markMergedCell($sheet_name, $start_row = 0, $start_col = 2, $end_row = 0, $end_col = 3);  //merge cells for B
    $writer->markMergedCell($sheet_name, $start_row = 0, $start_col = 4, $end_row = 0, $end_col = 5);  //merge cells for C
    $writer->writeSheetRow($sheet_name, $row1);   //write data
    $writer->writeToFile('test.xlsx');  //save file
    ?>
    

    Edit: If you need looping for repeating same style of merging, do like this

    <?php
    include_once("xlsxwriter.class.php"); //include
    $writer = new XLSXWriter();     //new writer
    $sheet_name = 'sheets';   //sheetname
    $header = array("string","string","string","string","string","string","string","string","string","string","string","string","string","string","string","string","string","string","string");  // header-made for 19 columns
    $row1 = array("A"," ","B"," ","C"," ","D"," ","E"," ","F"," ","G"," ","H"," ","I"," ","J"); //column B1, D1, F1, H1, J1, L1, N1, P1, R1 made blank to match formatting
    $writer->writeSheetHeader($sheet_name, $header, $suppress_header_row = true);   //write header
    $writer->markMergedCell($sheet_name, $start_row = 0, $start_col = 0, $end_row = 1, $end_col = 1);  //merge cells for A
    $j = 2; //start column
    for ($i=0; $i<9; $i++)
    {
    $writer->markMergedCell($sheet_name, $start_row = 0, $start_col = $j, $end_row = 0, $end_col = $j+1);  //merge cells
    $j+=2;
    }
    $writer->writeSheetRow($sheet_name, $row1);   //write data
    $writer->writeToFile('test.xlsx');  //save file
    ?>
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥15 oracle集群安装出bug
  • ¥15 关于#python#的问题:自动化测试
  • ¥20 问题请教!vue项目关于Nginx配置nonce安全策略的问题
  • ¥15 教务系统账号被盗号如何追溯设备
  • ¥20 delta降尺度方法,未来数据怎么降尺度
  • ¥15 c# 使用NPOI快速将datatable数据导入excel中指定sheet,要求快速高效
  • ¥15 再不同版本的系统上,TCP传输速度不一致
  • ¥15 高德地图2.0 版本点聚合中Marker的位置无法实时更新,如何解决呢?
  • ¥15 DIFY API Endpoint 问题。
  • ¥20 sub地址DHCP问题