通过PHP格式化Excel文件中的文本

通过PHP格式化Excel文件中的文本,php,export-to-excel,Php,Export To Excel,我正在从我的数据库加载数据,并通过我在此网站上找到的方法导出到Excel文件: 它可以工作,但我现在要做的是在输出之前格式化文本-更改字体和文本大小。有人对如何做到这一点有什么想法吗?我已经使用这些类从PHP5编写了Excel电子表格。使用此软件包可以做很多事情。根据您希望部署解决方案的速度,一种方法是只使用HTML表格标记,使用样式标记将所有数据存储在表格中,然后使用PHP标头的选项强制浏览器将is另存为.xls文件 为了验证概念,请将此代码复制到记事本中,另存为.xls,然后用Excel打开

我正在从我的数据库加载数据,并通过我在此网站上找到的方法导出到Excel文件:


它可以工作,但我现在要做的是在输出之前格式化文本-更改字体和文本大小。有人对如何做到这一点有什么想法吗?

我已经使用这些类从PHP5编写了Excel电子表格。使用此软件包可以做很多事情。

根据您希望部署解决方案的速度,一种方法是只使用HTML表格标记,使用样式标记将所有数据存储在表格中,然后使用PHP标头的选项强制浏览器将is另存为.xls文件

为了验证概念,请将此代码复制到记事本中,另存为.xls,然后用Excel打开:

<table>
<tr><th>Column 1</th><th>Column 2</th></tr>
<tr><td style="font-size:200%">Answer 1</td><td style="color:#f00">Answer 2</td></tr>
<tr><td colspan="2" style="font-weight:bold">Answer 3 with 2 columns</td></tr>
</table>

第1列第2列
回答1回答2
答案3有两栏

这不是最优雅的解决方案,但它绝对适合您的需要。

TinyButStrong模板系统(www.TinyButStrong.com)有一个可选插件,允许您编写excel模板

我经常用这个。它特别简洁,因为您可以根据标志将页面设置为写入HTML或Excel,因此我的报告通常提供“在页面上显示”和“写入Excel”选项

为您提供了执行此操作和更多操作的工具

编辑:此项目现在已弃用。

我已经使用过几次,并且非常喜欢它!:)



这是一篇老文章,但该死,这很有用。谢谢!简单而优雅的解决方案。这是一个死链接。已修复-但该项目现在已被弃用。
<?php
    include '../include/config.php';
    $sql                        =   "SELECT SQL_CALC_FOUND_ROWS
                                    ".DB_TBL_TUTORS_RECAPS.".id,
                                    ".DB_TBL_TUTORS_RECAPS.".date_of_tutoring_session,
                                    ".DB_TBL_TUTORS_RECAPS.".created,
                                    ".DB_TBL_TUTORS_RECAPS.".hours_tutored,
                                    ".DB_TBL_TUTORS_RECAPS.".billable_travel,
                                    ".DB_TBL_TUTORS_RECAPS.".billable_additional,
                                    ".DB_TBL_TUTORS_RECAPS.".type_of_tutoring,
                                    ".DB_TBL_TUTORS_RECAPS.".additional_comments,
                                    ".DB_TBL_TUTORS_RECAPS.".total_billable,
                                    ".DB_TBL_TUTORS_RECAPS.".materials_covered_during_session,
                                    ".DB_TBL_TUTORS_RECAPS.".next_scheduled_session_location,
                                    ".DB_TBL_TUTORS_RECAPS.".rate,
                                    ".DB_TBL_TUTORS_RECAPS.".tutor_pay_rate,
                                    ".DB_TBL_APPLICANTS.".first_name as tutor_first_name,
                                    ".DB_TBL_APPLICANTS.".last_name as tutor_last_name,
                                    ".DB_TBL_PIPELINE.".tutor_match_notes,
                                    ".DB_TBL_PIPELINE.".date_of_submission,
                                    ".DB_TBL_PIPELINE.".tutor_name,
                                    ".DB_TBL_PIPELINE.".tutor_id,
                                    ".DB_TBL_CLIENTS.".id as client_id,
                                    ".DB_TBL_CLIENTS.".first_name,
                                    ".DB_TBL_CLIENTS.".last_name,
                                    ".DB_TBL_CLIENTS.".location_name,
                                    ".DB_TBL_CLIENTS.".last_name,
                                    ".DB_TBL_CHILDREN.".id as child_id,
                                    ".DB_TBL_CHILDREN.".last_name as last,
                                    ".DB_TBL_CHILDREN.".first_name as first
                                FROM 
                                    ".DB_TBL_TUTORS_RECAPS."
                                LEFT JOIN ".DB_TBL_PIPELINE." ON ".DB_TBL_PIPELINE.".id= ".DB_TBL_TUTORS_RECAPS.".pipeline_id
                                LEFT JOIN ".DB_TBL_CHILDREN." ON ".DB_TBL_CHILDREN.".id= ".DB_TBL_TUTORS_RECAPS.".child_id  
                                LEFT JOIN ".DB_TBL_CLIENTS." ON ".DB_TBL_CLIENTS.".id= ".DB_TBL_TUTORS_RECAPS.".client_id   
                                LEFT JOIN ".DB_TBL_TUTORS." ON ".DB_TBL_TUTORS_RECAPS.".tutor_id= ".DB_TBL_TUTORS.".id  
                                LEFT JOIN ".DB_TBL_APPLICANTS." ON ".DB_TBL_APPLICANTS.".id= ".DB_TBL_TUTORS.".applicant_id 
                            WHERE 


                            " . DB_TBL_CLIENTS . ".status = 'Existing' AND

                            " . DB_TBL_APPLICANTS . ".status = 'Existing' AND

                            " . DB_TBL_PIPELINE . ".status = 'Existing' AND                             
                            " . DB_TBL_TUTORS_RECAPS . ".is_deleted = '0'                               
                                GROUP BY " . DB_TBL_TUTORS_RECAPS . ".id
                                ORDER BY " . DB_TBL_TUTORS_RECAPS . ".created DESC ";

    $totallogs      =   $db->query($sql);
    $filename       =   "Tutoring_Log.xls";
    $contents       =   "Recap# \t Tutor Name \t Client Name \t Child Name \t Type of tutoring \t Date of Tutoring session \t Hours tutored \t Billable Travel \t Billable Additional \t Total Billable \t Client Rate \t Tutor Pay Rate \t  \n";
    $contents       .=  "  \n";

    while($tutorRecords = $db->fetchNextObject($totallogs)){

        $contents .= "".$tutorRecords->id." \t ".$tutorRecords->tutor_first_name.' '.$tutorRecords->tutor_last_name." \t ".$tutorRecords->first_name.' '.$tutorRecords->last_name." \t ".$tutorRecords->first.' '.$tutorRecords->last." \t ".$globalsConstant['type_of_tutoring'][$tutorRecords->type_of_tutoring]." \t ".date(MDY,$tutorRecords->date_of_tutoring_session)." \t ".str_replace('.',':',$tutorRecords->hours_tutored)." \t ".str_replace('.',':',$tutorRecords->billable_travel)." \t ".str_replace('.',':',$tutorRecords->billable_additional)." \t ".str_replace('.',':',$tutorRecords->total_billable)." \t ".CURRENCY.$tutorRecords->rate." \t  ".CURRENCY.$tutorRecords->tutor_pay_rate."  \t \n";

    }

    header('Content-type: application/ms-excel');
    header('Content-Disposition: attachment; filename='.$filename);
    echo $contents;
      ?>