精华内容
下载资源
问答
  • 利用VC++自动生成Excel表格,很详细!!
  • php生成excel表格

    2018-07-15 16:01:59
    php生成excel表格下载,自己在项目中使用,分享给大家。
  • java生成excel表格

    2015-12-29 13:16:38
    java生成excel表格代码示例,下载后可以直接使用
  • 本来想接着写关于web的东西,不过老师突然留了个作业,就是将几百条word上面的数据转化成表格的形式. 但是很尴尬的是…我居然不会用word… 不过,咱们好歹也是学过python的人,写一个这样的脚本很简单. 一.处理的数据的...

    本来想接着写关于web的东西,不过老师突然留了个作业,就是将几百条word上面的数据转化成表格的形式.
    但是很尴尬的是…我居然不会用word…
    不过,咱们好歹也是学过python的人,写一个这样的脚本很简单.

    一.处理的数据的示例

    首先需要的数据是这样的:
    在这里插入图片描述
    要求是将后面的数据转化成第一行的表格.如图.
    在这里插入图片描述

    二.脚本的构思

    首先,我们要将数据全部复制到一个新建的txt文件中.虽然python可以直接读取word文档,但是终究没有直接读取txt文件来的舒服.如图,这是我复制到txt文档以后的东西.
    data.txt
    在这里插入图片描述
    数据大概要有400多个.接着我们要想,如何处理这个数据?
    我先拿一行数据举例.

    1.将两行数据规范成一行

    假如我们的数据十分整齐,并且每一行都按照某个字符进行分割,之后在使用python里面的pyopenxl模块就可以添加到表格里了.
    因此,我们首先要对数据进行一下规范.如图,我们的最终目的就是将每一条数据规范成这样的形式.
    在这里插入图片描述
    对比原来的数据:
    在这里插入图片描述

    将原来分两行的数据规范成一行.
    想一想,该怎么做呢?
    很简单,我们读取这个文件,然后在读取的时候将第一行结尾的换行(’\n’)替换成空字符(’’)不就行了么?
    于是我们便得到了第一张图片的效果:
    在这里插入图片描述

    2.去掉多余的换行

    观察我们的数据:
    在这里插入图片描述
    我们会发现第一条数据和第二条数据多了一个让人难受的换行符.我们得想办法去掉.
    当然,我们只拿一行数据举例.
    我们的最终目的是这样的:
    在这里插入图片描述
    是为了消除数据一和数据二之间的回车
    .原理也很简单,就是在读取到第一个数据的最后一行的时候,把回车(’\n’)换成(’’)空字符就行了.

    3.处理多条数据

    我们学会了将一行数据进行处理,但是我们有将近400条数据,改怎么处理呢?
    相信有人已经想到了,那就是写一个循环,然后进行计算,先这样,在那样不就行了么?
    (原谅我懒的写了哈哈哈哈.后面我直接写代码你们就明白了)

    三.代码的实现

    对于数据我相信大部分人已经分析清楚了,所以我就将代码对应上面的每一步来进行实现.

    1.对文件进行读写

    代码如下

    f=open("data.txt","r")
    list=f.readlines()
    

    原理就不用说了吧?首先用读的方式打开文件,然后用readlines函数将文件内容按照行写成一个列表.
    开始我其实想用c来做这个脚本,但是c实现的话太麻烦了,光文件读写就得写十几行,所以还不如python来的快.

    2.处理数据

    这个就是比较核心的地方了.先上代码,然后我会解释.

    new_list=[]
    #这个空列表是下面要用的,我们的数据处理完就放在这个列表里面.
    for number in range(0,len(list),3):
        list[number]=list[number].replace("\n","")
        list[number+1]=list[number+1].replace("\n","")
        if len(list)!=1487:
            str=list[number]+list[number+1]+list[number+2]
            new_list.append(str)
        else:
            str=list[number]+list[number+1]
            new_list.append(str)
    

    1.循环

    先解释一下为什么循环要写成这样.

    for number in range(0,len(list),3):
    

    因为观察数据:
    在这里插入图片描述
    发现我们一个数据占用的是三行,我们要对这三行数据进行处理,我们的len(list)代表我们刚刚读取的数据,因此我们要让循环一次增长三行,这样就代表我们读取完一条数据了.

    2.换行符的处理

        list[number]=list[number].replace("\n","")
        list[number+1]=list[number+1].replace("\n","")
    

    这段代码是使用了replace函数,第一个参数是取代前的字符,第二个参数是取代后的字符,也就是我们刚才提到的是空字符.
    number变量用来记录行数的.
    第一段代码,因为我们一次性读取的是三行,所以每次的三行的第一行都是我们图中的数据:
    在这里插入图片描述
    所以,我们用replace直接替换最后的回车就行了.
    第二段代码同理.也是直接处理就行了.

    3.条件判断

        if len(list)!=1487:
            str=list[number]+list[number+1]+list[number+2]
            new_list.append(str)
        else:
            str=list[number]+list[number+1]
            new_list.append(str)
    

    为啥会有1487这个数字呢?是因为总共数据就有1487行.
    在这里插入图片描述
    我们对列表的操作是一次性跳3行,所以如果不在最后面加一个判断的话,会因为数字递增超过列表最大长度而错误.
    而else的这样写是因为我们最后1486行仅仅处理两行数据就行了,所以我就写成了这样.
    当然,记得要提前要写一个空列表,否则append函数是无法用的.

    4.将数据写到一个新建的excel表格中

    这个就需要使用我们的openpyxl模块了.没有的同学去网上搜一下怎么安装.我就直接上代码了,详细的解释我加在了注释里头.

    import openpyxl
    #导入模块
    workbook=openpyxl.Workbook()
    #新建一个工作薄
    sheet=workbook.active
    sheet.title="数据表"
    sheet['A1']="序号"
    sheet['B1']="业务类型"
    sheet['C1']="通话起始时间"
    sheet['D1']="通话时长"
    sheet['E1']="呼叫类型"
    sheet['F1']="对方号码"
    sheet['G1']="本机通话地"
    sheet['H1']="对方归属地"
    sheet['I1']="通话类型"
    sheet['J1']="通话费"
    sheet['K1']="其他费"
    sheet['L1']="小计"
    #在对应的行添加对应要求的内容
    

    这段代码放在开头.中间放开始那些代码.
    然后在最后,添加下面的代码:

    for i in new_list:
        i=i.split(",")
        #按照逗号进行分割数据
        sheet.append([i[0],i[1],i[2],i[3],i[4],i[5],i[6],i[7],i[7],i[8],i[9],i[10]])
        #将分割好的数据添加到excel表格中
    workbook.save("话单数据.xlsx")
    #保存数据
    

    关于openpyxl模块我就不详细讲解了,有兴趣的同学可以百度一下.

    5.完整代码

    import openpyxl
    workbook=openpyxl.Workbook()
    sheet=workbook.active
    sheet.title="数据表"
    sheet['A1']="序号"
    sheet['B1']="业务类型"
    sheet['C1']="通话起始时间"
    sheet['D1']="通话时长"
    sheet['E1']="呼叫类型"
    sheet['F1']="对方号码"
    sheet['G1']="本机通话地"
    sheet['H1']="对方归属地"
    sheet['I1']="通话类型"
    sheet['J1']="通话费"
    sheet['K1']="其他费"
    sheet['L1']="小计"
    f=open("data.txt","r")
    list=f.readlines()
    new_list=[]
    for number in range(0,len(list),3):
        list[number]=list[number].replace("\n","")
        list[number+1]=list[number+1].replace("\n","")
        if len(list)!=1487:
            str=list[number]+list[number+1]+list[number+2]
            new_list.append(str)
        else:
            str=list[number]+list[number+1]
            new_list.append(str)
    for i in new_list:
        i=i.split(",")
        sheet.append([i[0],i[1],i[2],i[3],i[4],i[5],i[6],i[7],i[7],i[8],i[9],i[10]])
    workbook.save("话单数据.xlsx")
    

    记得在同一目录下添加一个data.txt存放需要被处理的数据.
    运行完以后,同一目录下产生一个"话单数据.xlsx"文件.如图
    在这里插入图片描述

    好了,这就是这次关于python脚本的内容,相信大家已经学会了.

    展开全文
  • 用Python自动生成Excel报表

    千次阅读 2020-11-06 10:04:25
    类似这种重复无聊的任务,我们完全可以交给 Python 去自动完成,只要第一次把 Python 代码写好,以后就可以一键完成,省时省力,还不容易出错,这是提升工作质量和工作效率的利器,让我们能够腾出时间和精力,去做更...

    在日常工作中,可能会有一些重复无聊的任务,比如说,从 Excel 或数据库中收集一些数据,设置相应的数据格式并做成报表。
    类似这种重复无聊的任务,我们完全可以交给 Python 去自动完成,只要第一次把 Python 代码写好,以后就可以一键完成,省时省力,还不容易出错,这是提升工作质量和工作效率的利器,让我们能够腾出时间和精力,去做更有价值的事情。
    1. 安装和导入模块
    以 Python 中的 openpyxl 模块为例,它能够读取和修改 Excel 文件,如果你还没有安装,可以通过以下命令进行安装:

    pip install openpyxl
    

    要测试 openpyxl 是否正确安装,可以在 Jupyter Lab 中运行以下代码:

    # 导入库
    import openpyxl
    # 查看版本
    openpyxl.__version__
    

    如果该模块正确安装,那么会输出版本号,假如你在使用过程中遇到问题,可以查阅官方文档。
    2. 读取和处理数据
    为了演示用 Python 自动生成 Excel 报表,我从网上找了一个数据集,是一家跨国公司的 54 万多行在线零售业务的交易数据,你可以进入公众号「林骥」的后台,回复「零售」两个字,获取该数据集的完整下载链接。
    把这个数据文件保存到代码上级目录的 data 文件夹,然后用 Pandas 读取它:

    # 读取数据
    import pandas as pd
    df = pd.read_excel('../data/Online Retail.xlsx')
    
    df
    

    在这里插入图片描述
    其中每一列代表的含义如下:

    InvoiceNo:发票编号
    StockCode:产品代码
    Description:产品名称
    Quantity:产品数量
    InvoiceDate:开票时间
    UnitPrice:产品单价
    CustomerID:客户编号
    Country:国家名称

    为了统计每天的销售额,我们先在数据中增加两列:日期和销售额,然后用函数实现汇总:

    # 从时间列中提取日期
    df['日期'] = df.InvoiceDate.dt.to_period('D').astype(str)
    
    # 计算销售额
    df['销售额'] = df.Quantity * df.UnitPrice
    
    # 汇总每天的销售额
    df_daily = pd.DataFrame(df.groupby('日期')['销售额'].agg('sum')).reset_index()
    
    df_daily
    

    在这里插入图片描述
    3. 设置和保存报表
    接下来,我们对表格进行相应的设置,包括:重命名工作表、把数据写入工作表、自定义标题和表格边框样式、设置行高和列宽、不显示网格线、冻结窗格、自动筛选、设置日期和数字格式等等。

    from openpyxl.utils.dataframe import dataframe_to_rows
    from openpyxl.styles import Font, Color, NamedStyle, Border, Side, PatternFill, Alignment, numbers
    
    # 创建工作簿
    wb = openpyxl.Workbook()
    
    # 激活工作表
    ws = wb.active
    
    # 重命名工作表
    ws.title = '每日销售额'
    
    # 把数据写入工作表
    for row in dataframe_to_rows(df_daily, index=False, header=True):
        ws.append(row)
        
    # 创建自定义的标题样式
    mytitle = NamedStyle(name='mytitle')
    mytitle.font = Font(bold=True, size=11, color='FFFFFF')
    bd = Side(style='thin', color='A6A6A6')
    mytitle.border = Border(left=bd, top=bd, right=bd, bottom=bd)
    mytitle.fill = PatternFill('solid', fgColor='00589F')
    mytitle.alignment = Alignment(horizontal='left', vertical='center')
    wb.add_named_style(mytitle)
    
    # 创建自定义表格边框样式
    myborder = NamedStyle(name='myborder')
    myborder.font = Font(bold=False, size=11, color='000000')
    bd = Side(style='thin', color='A6A6A6')
    myborder.border = Border(left=bd, top=bd, right=bd, bottom=bd)
    myborder.alignment = Alignment(vertical='center')
    wb.add_named_style(myborder)
    
    # 应用标题样式
    for cell in ws[1]:
        cell.style = mytitle
        
    # 对表格区域加边框
    from openpyxl.utils import get_column_letter, column_index_from_string
    table_range = ws['A2:' + get_column_letter(ws.max_column) + str(ws.max_row)]
    for row in table_range:
        for cell in row:
            cell.style = myborder
        
    # 设置行高和列宽
    ws.row_dimensions[1].height = 26
    ws.column_dimensions['A'].width = 15
    ws.column_dimensions['B'].width = 12
    
    # 设置不显示网格线
    ws.views.sheetView[0].showGridLines = False
    
    # 冻结窗格
    ws.freeze_panes = 'A3'
    
    # 自动筛选
    ws.auto_filter.ref = 'A1:' + get_column_letter(ws.max_column) + str(ws.max_row)
    
    # 设置对齐格式
    for cell in ws['A']:
        cell.alignment = Alignment(horizontal='center', vertical='center')
    
    # 设置日期格式
    for cell in ws['A']:
        cell.number_format = numbers.FORMAT_DATE_YYYYMMDD2
        
    # 设置数字格式
    for cell in ws['B']:
        cell.number_format = numbers.BUILTIN_FORMATS[3]
    

    最后,保存自动生成的 Excel 报表文件:

    # 保存为新的表格
    wb.save('../data/每日销售报表.xlsx')
    

    打开这个新生成的 Excel 报表文件,其中的内容如下:
    在这里插入图片描述
    小结
    本文介绍了用 Python 自动生成 Excel 报表的一种方法,从 openpyxl 模块的安装和导入,到读取和处理数据,再到设置和保存报表,只要你把数据源放在合适的位置,就能在 Jupyter Lab 中一键运行,自动生成相应的报表。

    参考链接 :

    用Python自动生成Excel报表 :https://mp.weixin.qq.com/s/niZ1_ORP5QRJ9xR-oR0wpw

    展开全文
  • 用C#编程实现绘制Excel表格并填充数据和公式,生成表格或报表。 不是服务器端自动化。 使用的是PageOffice,除了提供Word/Excel动态数据填充,格式控制,Word/Excel用户输入提交,Word/Excel/PowerPoint/WPS等...
  • 今天要分享的是如何在cad里提取若干点,将点位坐标数据自动生成表格,更关键的要同时也带有excel表格,直接就跟excel交互 一、cad本身功能 首先,当然cad软件本身就可以,但因为不是一般操作里所以常常被人忽视 ...

    这里,除了BIM,就是建筑相关干货、工具、教程分享,小鱼当的建筑BIM日志

    没错,最近在疯狂测量点位及处理数据的我又来啦

    今天要分享的是如何在cad里提取若干点,将点位坐标数据自动生成表格,更关键的要同时也带有excel表格,直接就跟excel交互

    一、cad本身功能

    首先,当然cad软件本身就可以,但因为不是一般操作里所以常常被人忽视

    既不是再另存为里,也不是在导出里

    而是在【工具】选项下拉里,有【数据提取】功能,可以提取很多数据信息,包含但不局限于提取点的xyz坐标

     

     

     

     

    执行完【数据提取】后,会询问是新建数据提取文件还是编辑之前做过的,还可以使用之前作类似的样板,第一回当然是新建了

     

     

     

     

    保存一下文件存放路径

     

     

     

     

    继续点击下一步

     

     

     

     

    这时会显示cad里所有的构件,我新建的空文件,里面只有几个点和几根线,因为要导出点坐标,就只勾选点

     

     

     

     

    选择【位置X】 以及Y Z

     

     

     

     

    继续点下一步,就会将所有点的xyz以表格形式罗列出来,

     

     

     

     

    继续下一步,可以将该表格插入到当前cad文件中,也可以生成一个excel文件,另存出来

     

     

     

     

    再下一步就是后续对该表格的设置了

     

     

     

     

    最后点击完成即可

     

     

     

     

    excel的文件已创建,同时在cad界面某处左击以插入该表格

     

     

     

    分别为插入cad的和excel的表格

     

     

     

     

     

     

     

     

    这就实现了cad中点坐标数据导出到excel的目的

    二、插件

    当然,一般这种都是有对应插件的,从cad中快速提取点坐标数据也有

    获取方式:

    关注后私信我发送关键词:提点

    可以生成cad里插入的表格,长的有点不一样,类似下图

     

     

     

     

    那么到底怎么使用呢?与一般cad插件稍有不同,他是vba程序编写而成的,所以在打开cad后

    在【管理】里【加载工程】

     

     

     

     

    选择该文件打开即可

     

     

     

     

    也同样会弹窗询问是否始终加载

     

     

     

     

    并且要启用宏

     

     

     

     

    什么?你说你点【加载工程】的时候不行?而且出现了该警告弹窗?

     

     

     

     

    原因也写在了弹窗里了,跟安装cad有关,其实跟版本有关

    这时候我们需要另外再安装下VBA程序,点进弹窗里的网址,选择对应的cad版本及位数,点击下载

     

     

     

     

    下载完毕后,解压一下安装程序包

     

     

     

     

    准备安装前,记得关闭所有杀毒软件,并且右击【以管理员身份运行】安装程序

     

     

     

     

     

    熟悉的安装界面,熟悉的安装步骤,点击【Install】就是了

     

     

     

     

    等待程序安装,如果弹窗警告,说明不能在安装的同时cad打开,那就关闭cad软件后点【确定】继续安装即可

     

     

     

     

    安装完后重新打开cad,重新加载就跟上面一样了

     

     

     

     

    加载完毕后,输入 zbbg 命令,就能使用该插件,如果没有反应就点【管理】里的【运行VBA宏】

     

     

     

     

    继续点【运行】

     

     

     

     

    这时候会问你选择点方式,输入1 或2,回车以选择

    (1)指原来没有点,执行命令后我们现场点出点来,并将当场生成的点坐标统计入表格

    (2)指的是已经有点了,框选出要导出坐标数据的点

     

     

     

     

    1就没什么好说的了,点完了右击退出就行了

    选择2后,出现该弹窗,

     

     

     

     

    选择【点是图型中的‘点’图元】,

     

     

     

     

    框选要导出坐标的点

     

     

     

     

    框选完毕后会告诉你选中了多少个点,继续回车确认

     

     

     

     

    这时要设置下有关表格本身的了,比如表头名称,插入cad里的字体大小、小数位数等

     

     

     

     

    设置完毕后确定,然后点某处将表格插入进来

     

     

     

     

    该插件别的选项功能,可自行测试使用,就不多赘述了

    以上两种方法都可以,且都能实现关键的一点:

    生成excel表格

     

    因为这为我们后续点位数据提供了很大的操作空间,比如讲点位做成全站仪可识别的txt文件,输入到全站仪里进行后续的测绘工作

    希望能延伸出来数据提取的更多功能使用,以提高cad中获取有效信息的能力

    转载于:https://www.cnblogs.com/caizhao/p/10831705.html

    展开全文
  • 用C++写的excel表格生成功能(功能齐全)
  • 0、前言  因产品的同学试着用python统计Excel表格,... 原Excel报表是任务(标题)的信息列表,需要按需求分类分别统计各处理人的预估工时,如下(图1原始Excel表格有200多行、图2统计生成的新Excel表格): 原始Exce
  • 通过Excel管理表结构自动生成创建表sql文支持(sqlserver,oracle)
  • Wincc自动生成excel的c脚本,已在wincc7.0版本上测试完毕。
  • PHP生成Excel表格(一)

    千次阅读 2018-03-25 21:56:03
    文章使用phpexcel提供的操作方法,生成excel文件。 Excel目标 我们将要生成的excel最终效果如下图显示。 代码演示 public static function ExportExcel($data,$filename=''){ $data; //数据数组(三维...

    文章使用phpexcel提供的操作方法,生成excel文件。

    Excel目标

    我们将要生成的excel最终效果如下图显示。
    这里写图片描述

    代码演示

    public static function ExportExcel($data,$filename=''){
        $data; //数据数组(三维数组)
        $filename=empty($filename)?"":$filename;
        $resultPHPExcel = new \PHPExcel();
        $sheet_title = "每日效果走势图";
        // 设置sheet名称
        $resultPHPExcel->getActiveSheet()->setTitle($sheet_title);
        // 边框配置数组
        $styleArray = array(
            'borders' => array(
                'allborders' => array(
                    //'style' => PHPExcel_Style_Border::BORDER_THICK,//边框是粗的
                    'style' => \PHPExcel_Style_Border::BORDER_THIN,//细边框
                    //'color' => array('argb' => 'FFFF0000'),
                ),
            ),
        );
    
        //数据开始
        $i = 102;
        $j = $i;
        // 设置所在行的字体、大小、加粗
        $resultPHPExcel->getActiveSheet()->getStyle($i)->getFont()->setName('微软雅黑')->setSize(11)->setBold(true);
        $resultPHPExcel->getActiveSheet()->getStyle($i+29)->getFont()->setName('微软雅黑')->setSize(11)->setBold(true);
        // 设置所在行的字体、大小、加粗、颜色
        $resultPHPExcel->getActiveSheet()->getStyle($i+1)->getFont()->setName('微软雅黑')->setSize(11)->setBold(true)->getColor()->setARGB(\PHPExcel_Style_Color::COLOR_WHITE);
        $resultPHPExcel->getActiveSheet()->getStyle($i+30)->getFont()->setName('微软雅黑')->setSize(11)->setBold(true)->getColor()->setARGB(\PHPExcel_Style_Color::COLOR_WHITE);
        // 设置区域范围内的单元格背景颜色
        $resultPHPExcel->getActiveSheet()->getStyle('A'.($i+1).':B'.($i+1))->getFill()->setFillType(\PHPExcel_Style_Fill::FILL_SOLID)->getStartColor()->setRGB('404040');
        $resultPHPExcel->getActiveSheet()->getStyle($i+30)->getFill()->setFillType(\PHPExcel_Style_Fill::FILL_SOLID)->getStartColor()->setRGB('404040');
        // 给范围内的表格加上边框
        $resultPHPExcel->getActiveSheet()->getStyle('A'.($i+1).':B'.($i+26))->applyFromArray($styleArray);
        //单元格范围内,格式化数字。(取整,百分比)
        $resultPHPExcel->getActiveSheet()->getStyle('B104:B123')->getNumberFormat()->setFormatCode(\PHPExcel_Style_NumberFormat::FORMAT_NUMBER);
        $resultPHPExcel->getActiveSheet()->getStyle('B124:B128')->getNumberFormat()->setFormatCode(\PHPExcel_Style_NumberFormat::FORMAT_PERCENTAGE);
        $resultPHPExcel->getActiveSheet()->getStyle('133:148')->getNumberFormat()->setFormatCode(\PHPExcel_Style_NumberFormat::FORMAT_NUMBER);
        $resultPHPExcel->getActiveSheet()->getStyle('149:152')->getNumberFormat()->setFormatCode(\PHPExcel_Style_NumberFormat::FORMAT_PERCENTAGE);
    
        //循环数组,写入数据。
        foreach($data['list'] as $item){
            foreach($item as $key=>$val){
                 // 获取列的标识
                 $columnID = self::stringFromColumnIndex($key);
                 $cellID=self::stringFromColumnIndex($key).$i;
                 //设置单元格内容水平居中
                 $resultPHPExcel->getActiveSheet()->getStyle($cellID)->getAlignment()->setHorizontal(\PHPExcel_Style_Alignment::HORIZONTAL_CENTER);
                 //数据写入单元格
                 $resultPHPExcel->getActiveSheet()->setCellValue($cellID,$val);
                 // 非A列时,设置单元格宽度为15
                 if ($columnID!='A') {
                    $resultPHPExcel->getActiveSheet()->getColumnDimension($columnID)->setWidth(15);
                 }
            }
            $i ++;
        }
        // 设置A列的单元格宽度
        $resultPHPExcel->getActiveSheet()->getColumnDimension('A')->setWidth(20);
        //在单元格范围内,给表格添加边框
        $resultPHPExcel->getActiveSheet()->getStyle('A'.($j+30).':'.$columnID.($j+50))->applyFromArray($styleArray);
        $sum = $arrayLegth-3;
        //表格末尾两行,写入数据
        $resultPHPExcel->getActiveSheet()->setCellValue('A153','备注:表格内各数据单位为万;线索单位为条');
        $resultPHPExcel->getActiveSheet()->getStyle('A153')->getFont()->setName('微软雅黑')->setSize(11)->setBold(true)->getColor()->setARGB(\PHPExcel_Style_Color::COLOR_RED);
    
        $outputFileName = $filename.date('Y_m_d_H_i').'.xlsx';
        $xlsWriter = new \PHPExcel_Writer_Excel2007($resultPHPExcel);
        //输出到浏览器
        header("Content-Type: application/force-download");
        header("Content-Type: application/octet-stream");
        header("Content-Type: application/download");
        header('Content-Disposition:inline;filename="'.$outputFileName.'"');
        header("Content-Transfer-Encoding: binary");
        header("Last-Modified: " . gmdate("D, d M Y H:i:s") . " GMT");
        header("Cache-Control: must-revalidate, post-check=0, pre-check=0");
        header("Pragma: no-cache");
        $xlsWriter->save( "php://output" );
        exit;
    }

    关于代码
    以上代码只是生成excel的核心部分。数据源部分、和其他一些方法的调用都没有给出。
    关于数据数组
    这里我个人习惯将输出数组拼接成一个三维数组。由外到内,第一维度为sheet页、第二维度为表格的行、第三维度为表格的列。二三维度可以具体到一个单元格。
    关于数据写入
    phpexcel的写入数据,是需要指定单元格的。所以,必须转换成excel的列表示方式(英文字母)
    其他补充
    基本上代码上都给了比较详细的注释。那如果对这些操作样式的方法不熟悉,还是需要去看一下文档。后面有时间我会专门出一篇文章来解释文档。

    Excel效果

    这里写图片描述
    和我们的目标对比发现,好像有很多区别。比如:

    1. 许多颜色样式没有配置。
    2. 数字格式没有千分位分割符。
    3. 除了有内容的单元格,其他的单元格应该是空白。
      ……

    存在的问题

    从我们的代码上看,发现通过phpexcel官方提供的操作对象去生成excel是存在许多问题的。(以下问题不一定能通过上面内容反映)

    1. 配置样式比较繁琐,复杂的样式可能需要大量代码去支持。
    2. 虽然提供了行和列整体的操作。但是存在单元格合并时,整行或者整列的配置会失效。而且整行或者整列配置样式时,会导致把表格外部带入样式,比较难看。
    3. 虽有提供默认样式配置,但是多种配置在同一个单元格时,会出现默认失效的问题。调试比较麻烦。
    4. 单元格的自动宽度,对于中文支持不好。

    这种生成excel的方式存在许多问题,但是还是能尽量避免的。解决方法可以尝试。

    1. 尽量通过循环,把样式配置到单元格上。
    2. 样式设置时,有限默认样式->写入数据->单元格样式配制的方式。这种方式一般不会出现配置后不生效的问题。

    寻求别的途径

    既然样式的配置,那么繁琐又增加代码量。那么有没有什么别的方式来解决这个问题呢?
    答案肯定是有的,不然这篇文章就没有意见。在上一篇文章介绍phpexcel时,有说道。phpexcel能读取、生成、修改excel文件。那么出力直接生成excel文件,能否能使用别的方式间接生成呢?
    下一篇文件,主要讨论如何放弃繁琐的样式配置,生成跟目标文件一样样式的文件。

    展开全文
  • 一键生成带有所有文件名的Excel表格,之前找同事开发的小程序,解决了很多问题,Windows可用
  • 用js实现的一个根据内容自动生成表格的函数
  • 此工具是VBA开发,有录入绑定数据功能,可根据不同需求变更设置,扫描绑定数据自动录入Excel,可用于不同环境,工厂记录关联数据等
  • 利用Python自动生成及发送Excel报表

    千次阅读 2019-01-21 14:41:22
    1、利用Python生成excel及发送邮件; 2、建立一张邮件发送配置表,用来配置所有需要发送的邮件基本信息;再建立一张邮件发送内容表,通过读取配置表数据来生成发送内容表。 邮件发送配置表(REP_SEND_CONF): 关键...
  • 根据Excel内容批量生成Word表格

    千次阅读 2020-08-13 17:09:07
    现在提供一种解决方法:将大量内容信息填到Excel中,然后利用下面软件批量生成Word表格。 步骤:①先制作映射文件(txt格式);②根据映射文件从Excl中读取数据,至Word中填写数据 下面是下载地址(附教程):...
  • excel 电子表格工作表自动生成工作表目录!
  • 1.定时自动生成excel文件, 2.定时发送邮件
  • excel脚本自动生成不重复5x5舒特方格,可自行修改其它矩阵,A4纸打印,一次训练一张,训练小朋友专注力,家庭训练好帮手。
  • 支持sqlserver与oracle自动生成sql创建表语句,一键自动生成,非常强大。
  • 主要介绍了js简单实现自动生成表格功能,结合实例形式分析了JavaScript针对数组元素遍历与页面元素动态操作相关实现技巧,需要的朋友可以参考下
  • 注:可能不适合wps表格 1. 在所有的sheet页前面新建一个sheet页,改名为目录 2. 在sheet页“目录”这个sheet名字上右击-查看代码,将一下代码复制,运行,就可将所有的sheet页的名字生成目录 获取excel的所有sheet页...
  • 前几天有人问我:Excel表格在录入信息时如何在日期单元格自动生成日期时间?在录入表格的时候,我们经常需要录入时间,比要填写出入库时间,为了减少录入的工作量,可以把日期设置为自动生成。例如我们在B列录入数据...
  • 自动生成全年排班表格excel表格模板.xls
  • 金蝶K3凭证生成 [VB6源码] 设置Excel表格自动生成凭证 项目核算自动生成,已在金蝶K3 10.4版及金蝶 K3 RISE V12.2上测试通过
  • python操作excel表格有不少组件,如:xlwt、openpyxl、pandas、xlrd、xlwings,一些组件在使用时有问题;这里选用xlwings,从原Excel报表统计后再生成的新Excel表格
  • 爬虫源码生成excel

    2017-04-17 19:07:25
    python 源码 爬虫 urllib2 BeautifulSoup xlwt
  • MATLAB生成excel表格

    万次阅读 多人点赞 2018-11-13 18:26:00
    利用excel对数据进行复杂处理有一定局限性,于是选择导入MATLAB进行处理。此贴针对MATLAB将数据导出至excel,列举一些简单的例子,帮助大家学习。

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 35,197
精华内容 14,078
关键字:

如何自动生成excel表格

友情链接: Bspline.rar