精华内容
下载资源
问答
  • django后台返回excel

    千次阅读 2018-05-06 09:28:20
    django后台返回excel表 1. 方法一(不推荐) 思路:先根据条件从数据库查找data,再把data生成excel表,再把excel返回(FileResponse) 步骤: 1.data:利用django.forms.model_to_dict 把数据转化成dict,...

    django后台返回excel表

    1. 方法一(不推荐)

    • 思路:先根据条件从数据库查找data,再把data生成excel表,再把excel表返回(FileResponse)
    • 步骤:

      • 1.data:利用django.forms.model_to_dict 把数据转化成dict,注意,ImageField无法转化

        from django.forms import model_to_dict
        user_infos = UserInfo.objects.filter(**kwargs)
        data = list(map(lambda x: model_to_dict(x, exclude=["avatr"]), user_infos))
      • 2.excel:使用xlsxwriter库根据data生成excel表

        xlsxwriter的使用见下面
        
      • 3.FileResponse:使用 django.http.FileResponse 返回

        from django.http import FIleResponse
        with open("./excel/userinfos.xlsx", "rb") as f:
            res = FileResponse(f)
            res["Content-Type"] = "application/octet-stream"
            res["Content-Disposition"] = 'filename="userinfs.xlsx"'
            return res
    • 缺点:每次针对不同的请求要生成不同的excel文件

    2. 方法二(推荐)

    • 思路:先查出数据data,再在内存中写一个excel文件,再返回出去,这样就省了一步
    • 步骤

      1. data:和上面一样
      2. excel+HttpResponse:在内存中写excel

        from django.http import HttpResponse
        from io import BytesIO
        import xlsxwriter
        
        x_io = BytesIO()
        work_book = xlsxwriter.WorkBook(x_io)
        work_sheet = work_book.add_sheet("excel-1")
        ...
        ...
        ...
        work_book.close()
        res = HttpResponse()
        res["Content-Type"] = "application/octet-stream"
        res["Content-Disposition"] = 'filename="userinfos.xlsx"'
        res.write(x_io.getvalue())
        
        return res
    • 其他:与上面的比较就是不用再去写一个excel文件了,也不用过后再删除了。

    3. xlsxwriter 的使用方法

    pip install xlsxwriter
    
    import xlswriter
    # 注意这里与上面用BytesIO的区别
    work_book = xlsxwriter.workbook.WorkBook("./excel/user_data.xlsx")
    work_sheet = work_book.add_sheet("excel-1")
    
    data = [{"a":1, "b": 2}, {"a":22, "b":11}, {"a":54, "b":99}...]
    keys = dict(data[0].keys())
    keys.sort()
    row, col = 0, 0
    # 写头
    for k in keys:
        # 意思是:在row行,col列,写了一个k
        work_sheet.write(row, col, k)
        col += 1
    # 写内容
    row, col = 1, 0
    for temp in data:
        for k in keys:
            work_sheet.write(row, col, temp[k])
            col += 1
        row += 1
        col = 0
    # work_book.close()
    # 这样就写了一个名为 user_data.xlsx 的文件了
    展开全文
  • 最近公司有一个需求,需要将数据库的数据导出为excel文件,基本的代码都已经写好了,但在浏览器端发送请求给服务端的时候服务端却返回一个没有文件名的excel文件,通过一步一步排查,终于找到了原因eclipse的...

    最近公司有一个需求,需要将数据库的数据导出为excel文件,基本的代码都已经写好了,但在浏览器端发送请求给服务端的时候服务端却返回一个没有文件名的excel文件,通过一步一步排查,终于找到了原因eclipse的Workspace设置的编码方式为UTF-8而Tomcat 应用服务器默认的编码方式是ISO8859-1,双方的编码不一致导致应用服务器在解码的时候出现问题,所以返回了一个没有文件名的Excel文件,因此根据应用服务器的编码方式将文件名的UTF-8格式转为ISO8859-1即可得到正常的文件名。

    没有名字的excle文件


    eclipse Workspace默认编码方式为UTF-8


    将UTF-8格式转为ISO8859-1格式


    成功得到正常的excel文件



    展开全文
  • 最后一步: 在ISE下面的运行命令窗口cd到你存放的路径: 因为我保存在C:\Users\jtang20\Desktop\test_ACE,所以我cd到这里啦 在test.ps1按F5运行,可以发现如下结果: 当然,你也可以换一下EXCEL...

    注意:此脚本只能运行于32位Powersehll(x86)

    建议本篇所有代码写于并保存于一个文件夹下

    首先打开Powersehll_ISE(x86)

    写入如下代码并保存:

    Import-Module .\ACE.PSM1

    $ds = Get-ACEData ".\附件二.RT-XXX control list for XXX.v3.Ex import and more att_20190428.xlsx" -Table "control list$"
    $dt = $ds.tables[0]
    #$drs = $dt.Select("[Calenda Date] is not null")
    Write-Host $dt.Columns[0].ColumnName
    Write-Host $dt.Rows[0][0];
    $dt.Rows[0].ItemArray[0].ToString();
    $dt.Rows[0].ItemArray[1].ToString();
    $dt.Rows[0].ItemArray[2].ToString();

    Import-Module .\ACE.PSM1 和 $ds = Get-ACEData ".\附件二.RT-RPA control list for FSA.v3.Ex import and more att_20190428.xlsx" -Table "control list$" 因为都是导入相对路径,也可以写入绝对路径, -Table "control list$" 是EXCEL的Sheet名字,后面需要加"$"

    保存为test.ps1

    然后再新建一个Powershell 文件,写入如下代码并保存为ACE.PSM1:

    #######################
    function Get-ACEConnection
    {
        param($ConnectionString)
     
        $conn = new-object System.Data.OleDb.OleDbConnection($ConnectionString)
        $conn.open()
        $conn
     
    } #Get-ACEConnection
     
    #######################
    function Get-ACETable
    {
        param($Connection)
        
        $Connection.GetOleDbSchemaTable([System.Data.OleDb.OleDbSchemaGuid]::tables,$null)
     
    } #Get-ACETable
     
    #######################
    function Get-ACEConnectionString
    {
        param($FilePath)
     
        switch -regex ($FilePath)
        {
            '\.xls$|\.xlsx$|\.xlsb$' {"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=`"$filepath`";Extended Properties=`"Excel 12.0 Xml;HDR=Yes;IMEX=1`";"}
            '\.mdb$|\.accdb$'        {"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=`"$filepath`";Persist Security Info=False;"}
        }
     
    } #Get-ACEConnectionString
     
    #######################
    <#
    .SYNOPSIS
    Queries Excel and Access files.
    .DESCRIPTION
    Get-ACEData gets data from Microsoft Office Access (*.mdb and *.accdb) files and Microsoft Office Excel (*.xls, *.xlsx, and *.xlsb) files
    .INPUTS
    None
        You cannot pipe objects to Get-ACEData
    .OUTPUTS
       System.Data.DataSet
    .EXAMPLE
    Get-ACEData -FilePath ./budget.xlsx -WorkSheet 'FY2010$','FY2011$'
    This example gets data for the worksheets FY2010 and FY2011 from the Excel file
    .EXAMPLE
    Get-ACEData - -FilePath ./budget.xlsx -WorksheetListOnly
    This example list the Worksheets for the Excel file
    .EXAMPLE
    Get-ACEData -FilePath ./projects.xls -Query 'Select * FROM [Sheet1$]'
    This example gets data using a query from the Excel file
    .NOTES
    Imporant!!! 
    Install ACE 12/26/2010 or higher version from LINK below
    If using an x64 host install x64 version and use x64 PowerShell
    Version History
    v1.0   - Chad Miller - 4/21/2011 - Initial release
    .LINK

    http://www.microsoft.com/downloads/en/details.aspx?FamilyID=c06b8369-60dd-4b64-a44b-84b371ede16d&displaylang=en
    #>
    function Get-ACEData
    {
        
        [CmdletBinding()]
        param(
        [Parameter(Position=0, Mandatory=$true)] 
        [ValidateScript({$_ -match  '\.xls$|\.xlsx$|\.xlsb$|\.mdb$|\.accdb$'})] [string]$FilePath,
        [Parameter(Position=1, Mandatory=$false)] 
        [alias("Worksheet")] [string[]]$Table,
        [Parameter(Position=2, Mandatory=$false)] [string]$Query,
        [Parameter(Mandatory=$false)]
        [alias("WorksheetListOnly")] [switch]$TableListOnly
        )
     
        $FilePath = $(resolve-path $FilePath).ProviderPath
        $conn = Get-ACEConnection -ConnectionString $(Get-ACEConnectionString $FilePath)
     
        #If TableListOnly switch specified list tables/worksheets then exit
        if ($TableListOnly)
        { 
            Get-ACETable -Connection $conn
            $conn.Close()
     
        }
        #Else tablelistonly switch not specified
        else
        {
            $ds = New-Object system.Data.DataSet
            $cmd = new-object System.Data.OleDb.OleDbCommand
            $cmd.Connection = $conn
            $da = new-object System.Data.OleDb.OleDbDataAdapter
     
            if ($Query)
            {
                $qry = $Query
                $cmd.CommandText = $qry
                $da.SelectCommand = $cmd
                $dt = new-object System.Data.dataTable
                $null = $da.fill($dt)
                $ds.Tables.Add($dt)
            }
            #Return one or more specified tables/worksheets
            elseif ($Table)
            {
                $Table | 
                foreach{ $qry = "select * from [{0}]" -f $_;
                $cmd.CommandText = $qry;
                $da.SelectCommand = $cmd;
                $dt = new-object System.Data.dataTable("$_");
                $null = $da.fill($dt);
                $ds.Tables.Add($dt)}
            }
            #Return all tables/worksheets
            else
            {
                Get-ACETable $conn | 
                where {$_.TABLE_TYPE -eq  'TABLE' } |
                foreach{ $qry = "select * from [{0}]" -f $_.TABLE_NAME;
                $cmd.CommandText = $qry;
                $da.SelectCommand = $cmd;
                $dt = new-object System.Data.dataTable("$($_.TABLE_NAME)");
                $null = $da.fill($dt);
                $ds.Tables.Add($dt)}
            }
     
            $conn.Close()
            Write-Output ($ds)
        }
     
    } #Get-ACEData
     
    Export-ModuleMember -function Get-ACEData

    这是一个外置脚本,我们引用就好。

    最后一步:

    在ISE下面的运行命令窗口cd到你存放的路径:

    因为我保存在C:\Users\jtang20\Desktop\test_ACE,所以我cd到这里啦

    在test.ps1按F5运行,可以发现如下结果:

    当然,你也可以换一下EXCEL文件名,和EXCEL WORKSHEET名字试一试,这边有赖人链接(有以上所有FILE):

    https://download.csdn.net/download/q215046120/11162601

     

     

     

     

     

    展开全文
  • JAVA web项目返回excel文件的方法

    千次阅读 2016-07-07 10:32:05
    //在这一步之前可以对workbook赋值,它只是一个excel文件对象,可以用代码赋值写入你想要的excel数据 workbook.write(outputStream); outputStream.close(); outputStream.flush(); } catch (Exception e){ ...

    服务端代码:记得引poi3.8的包

    @RequestMapping("exportFile")
        public void exportFile(HttpServletRequest request, HttpServletResponse response){
            try{
                //设置返回值信息
                String fileName = "findMedicine.xlsx";
                String filePath = request.getSession().getServletContext().getRealPath("/")+"WebSource/file/"+fileName;
                response.setContentType("multipart/form-data");
                response.setHeader("Content-Disposition", "attachment;fileName=" + "export_all.xlsx");
                InputStream inputStream = new FileInputStream(filePath);
                Workbook workbook = new XSSFWorkbook(inputStream);
                OutputStream outputStream = response.getOutputStream();
                inputStream.close();
                //在这一步之前可以对workbook赋值,它只是一个excel文件对象,可以用代码赋值写入你想要的excel数据
                workbook.write(outputStream);
                outputStream.close();
                outputStream.flush();
            }catch (Exception e){
                logger.error("----exportFile error----",e);
            }
        }
    展开全文
  • 文章目录应用场景一、怎么请求接口二、步骤图片1.res返回数据2.url地址3.download属性4.a标签5.返回的原式数据,长这样总结 应用场景 我对表格数据进行勾选,想要把勾选值导出成Excel文件 勾选后我将发送请求给...
  • 接下来我们就一步一步实现下载excel表格的功能,写这个主要是为了自己的学习和记录,如果对你有帮助,我也会很开心,如果有什么不对的,也可以帮我指出错误。 第一步:先写接口函数(以我的代码为例) respo
  • Excel导入

    2020-08-10 08:29:31
    下面的是导入流程:首先获取文件的路径,判断一下模板是否存在,存在就下一步获取文件名称,以流的形式返回文件。 判断文件后缀:转换成二进制数组,声明一个和文件大小一致的二进制数组,将上传的文件转成二进制...
  • 文章目录一、老板的需求总是莫名奇妙二、别人不帮你,你帮你自己三、干货,看不懂,我买飞机票给你四、代码:(每一步都有注释,完全不用担心,全网最良心)五、不是程序员,也别慌六、分享交流 一、老板的需求...
  • 我用的是VS2015 + Microsoft Excel 2015,这里强调一下OLE不能在WPS进行,因为OLE需要调用微软的基础类库(MFC),所以我们需要用到Excel软件,如果您用的是WPS,请出门右转! 2.具体步骤: 2.1创建工程: 我们...
  • 一篇文章我们已经可以获取某单元格的数据,现在我们只要执行:MsgBox VarType(curCell)就可以获取到类型,完整代码如下: Sub Macro1() ' ' Macro1 Macro ' 宏由 cq 录制,时间: 2016/08/02 x = Sheets("Sheet1...
  • 在每周周会汇报任务进度时,需要我们准备各组的项目进度,按照一定的excel模板整理,然而我们的数据,任务情况,任务进度都在redmine中体现,因此每周相当于我们有这样一个工作:将readmine中数据导出->确认开发的...
  • 用python读取excel,怎样显示要查找的数据?感觉还是CSV格式的好一些,EXCEL的要装插件,以CSV为例,段代码sqlserverchar对应c#importlinecacheo=open('d:\\test\\14.csv')#文件路径o.seek(0)r=o.readlines()s1=str...
  • Python部落组织翻译, 禁止转载【介绍】ExclePython是一款轻量级...【背景】虽然excel的市场地位正日益面临免费的(OpenOffice)和云软件(Google Sheets)的挑战和逐渐取代的风险,但是Excel依然是现在办公环境中,...
  • 译者:fanjy 来源:http://blogs.msdn.com/excel发表于:2006年7月7日Excel Services part 6: Building applications with Excel Web ServicesExcel Services(第6部分):用Excel Web Services创建应用程序While ...
  • 在上一篇中本人向大家介绍了OLE读取EXCEL文件所用到的动态链接库的方法!下面这一章节为大家介绍简单的UI界面以及使用DLL的方法! 一章节连接在此:http://blog.csdn.net/qq_35747066/article/details/78942143 ...
  • Excel使用技巧

    千次阅读 2012-06-05 18:06:51
    Excel使用技巧 在工作当中用电子表格来处理数据将会更加迅速、方便,而在各种电子表格处理软件中,Excel以其功能强大、操作方便著称,赢得了广大用户的青睐。虽然Excel使用很简单,不过真正能用好Excel的用户并不...
  • Excel的使用中,返回上一步是经常用到的一个工具,当数据填写有误需要查看之前的内容时,一般会通过“Ctrl Z”撤销操作,返回上一步。 但是,当返回到一定次数时,系统将无法再返回更早之前的操作。目前,在Office...
  • 在之前的项目中,使用到了Java后台读取excel文件数据的功能点,本想着该功能点已经做过了,这一类的应该都大差不离,不过在刚结束的一个项目中,现实给我深深的了一课,特此编写此片博客,以作记录,并给自己提个...
  • excel-快捷键

    2021-03-16 14:58:52
    复制Ctrl + C、粘贴Ctrl + V、复原/返回上一步Ctrl + Z、剪切Ctrl + X、全选ctrl+A 关闭工作簿Ctrl + W、打开工作簿Ctrl + O、保存工作簿Ctrl + S 查找ctrl+F、替换ctrl+H、定位ctrl+G 加粗Ctrl + B、斜体Ctrl + I ...
  • 一、批量更改数据格式有时候我们从数据平台导出的数据虽然是excel表格,但是里面的数据却是文本格式的,没办法进行计算操作,所以需要先转换格式。如果只是需要转换某个单元格中的数据格式,只需要选中该单元格,...
  • 问卷调查excel统计篇一:如何用excel统计调查问卷_附社会问卷调查报告范例_如何用excel统计调查问卷有些人可能经常要对调查问卷进行统计,使用手写的方法(就是在纸写正字的方法)虽然很方便,不过不方便在一定条件...
  • 可当我拿到excel表后,自己傻眼了,千个,一两三个在excel里还行,这么多咋搞?????不信看下图 搬救兵: 顿时我就慌了,这么多我真没有在Excel里合并过,我就找了同事,同事说这还不简单,就在Excel里面写...
  • 1,加载excel文件为数据框# 加载数据处理包pandas ,同时重命名为pd,以便后续简写方便import pandas as pd# 单独用一个变量存储文件名,一来便于代码重复利用,二来修改更方便filenameStr = '/Users/chaorenbuhuifei...
  • excel vlookup Excel VLOOKUP公式错误之谜 (Excel VLOOKUP Formula Error Mystery) Someone sent me a workbook in which a simple VLOOKUP formula was returning #N/A errors, instead of the correct results....
  • excel工作表添加目录 长Excel工作表的目录 (Table of Contents for Long Excel Sheet) In the comments for my post on creating a table of contents in Excel, Eden asked: "Can I create a content page within ...
  • excel函数 日期函数 您是哪个Excel函数? (Which Excel Function Are You?) If you’ve been anywhere online in the past couple of years, you’ve probably seen those quizzes, such as Which Star Wars ...
  • Excel总汇

    2011-10-25 09:51:53
     (二)数据库数据导入到Excel的方法比较  (三)SSIS的简介  (四)数据库中存储过程示例(SSIS应用需要)  (五)Excel模板的制作(这步这么简单,稍微介绍一下)  (六)SSIS操作过程(生成Package,...
  • 如何用excel统计的调查问卷如何用excel统计的调查问卷有些人可能经常要对调查问卷进行统计,使用手写的方法(就是在纸写正字的方法)虽然很方便,不过不方便在一定条件下进行统计,如在男士的条件下,使用诺基亚的...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 13,791
精华内容 5,516
关键字:

excel返回上一步