func ReadXlsx(c []CmdbTest, SheetName string) error {
    //打开文件,如果文件不存在创建,存在就打开
    path := "./cmdb_test.xlsx"
    b, err := PathExists(path)
    if err != nil {
        fmt.Sprintln(err)
    }
    if !b {
        files := xlsx.NewFile()
        //第一次创建文件时创建sheet
        alert := []string{"项目名称", "测试接口名称", "测试参数", "测试条数", "总耗时", "评均耗时", "最大耗时", "最小耗时"}
        sheet, _ := files.AddSheet(SheetName)
        row := sheet.AddRow()
        for _, a := range alert {
            row.AddCell().SetString(a)
        }
        err := files.Save(path)
        if err != nil {
            fmt.Println("创建xlsx文件发生错误")
            return err
        }
    }
    file, err := xlsx.OpenFile(path)
    if err != nil {
        fmt.Println("打开xlsx文件发生异常")
        return err
    }
    //判断结构体sheetName是否存在。
    br, err := SheetExists(path, SheetName)
    if err != nil {
        fmt.Println(err)
        return err
    }
    if !br {
        //追加创建新sheet
        alert := []string{"项目名称", "测试接口名称", "测试参数", "测试条数", "总耗时", "评均耗时", "最大耗时", "最小耗时"}
        sheet, _ := file.AddSheet(SheetName)
        row := sheet.AddRow()
        for _, a := range alert {
            row.AddCell().SetString(a)
        }
        err := file.Save(path)
        if err != nil {
            fmt.Println(err)
            return err
        }
    }
    //数据录入
    first, _ := file.Sheet[SheetName]
    for _, v := range c {
        ls := []string{v.PMName, v.InterfaceName, v.Type, v.TestNumber, v.SumTime, v.MeanTime, v.MaxTime, v.MinTime}
        row := first.AddRow()
        for _, r := range ls {
            cell := row.AddCell()
            cell.Value = r
            err = file.Save(path)
            if err != nil {
                fmt.Println("写入信息发生异常,文件正在使用")
                return err
            }
        }
    }
    return nil
}

golang 文件导入数据追加sheet的更多相关文章

  1. 用SQLSERVER里的bcp命令或者bulkinsert命令也可以把dat文件导入数据表

    用SQLSERVER里的bcp命令或者bulkinsert命令也可以把dat文件导入数据表 下面的内容的实验环境我是在SQLSERVER2005上面做的 之前在园子里看到两篇文章<C# 读取纯真 ...

  2. Selenium(九)测试用例数据分离与从文件导入数据

    一.测试用例数据与代码分离 1.从之前的脚本来看,我还是把数据写在了脚本中,这样脚本的通用性很差.全局的数据其实可以从数据库.文本文件.Excel中直接读取. 2.代码和用户数据分离: 3.数据设计- ...

  3. PHP Excel文件导入数据到数据库

    1.php部分(本例thinkphp5.1): 下载PHPExcel了扩展http://phpexcel.codeplex.com/ <?phpnamespace app\admin\contr ...

  4. MySQL笔记(三)由txt文件导入数据

    改编自学校实验,涉及一些字符集相关的问题. 索引 建库 导入数据 最终脚本 下载数据 点击这里 建库 create.sql DROP DATABASE IF EXISTS orderdb; CREAT ...

  5. 从Excel(CSV)文件导入数据到Oracle

    步骤: 1.准备数据:在excel中构造出需要的数据2.将excel中的数据另存为文本文件(有制表符分隔的)3.将新保存到文本文件中的数据导入到pl*sql中在pl*sql中选择tools--text ...

  6. Linux下通过txt文件导入数据到MySQL数据库

    1.修改配置文件 在 /etc/my.conf 中添加 local_infile=1 2.重启MySQL >service mysqld restart 3.登录数据库 登录时添加参数 --lo ...

  7. [django]l利用xlrd实现xls文件导入数据

    代码: #coding:utf-8 import os os.environ.setdefault("DJANGO_SETTINGS_MODULE", "www.sett ...

  8. mysql通过sql文件导入数据时出现乱码的解决办法

    首先在新建数据库时一定要注意生成原数据库相同的编码形式,如果已经生成可以用phpmyadmin等工具再整理一次,防止数据库编码和表的编码不统一造成乱码. 方法一: 通过增加参数 –default-ch ...

  9. WEKA从sqlite数据库文件导入数据

    1.编写代码的方式 只需要在java工程中导入weka.jar和sqlite-jdbc-3.8.7.jar两个jar包, weka.jar可以在weka的安装路径下找到, sqlite-jdbc-3. ...

随机推荐

  1. c# 图文添加文字斜水印 优化

    之前一篇给图片加水印的功能,加出来水印的图片位置有一点问题,并且如果图片分辨率有变动的话,水印会有层次不齐的问题. 目前只能优化到增加一条居中显示的斜水印,在不同分辨率不同大小的图片中,都能保证文字水 ...

  2. .net core 根据数据库生成实体类

    微软最近几年在跨平台上不断发力,很多.net程序员也摩拳擦掌,对微软寄以厚望.就在最近,微软还推出了asp .net core2.0预览版. 通过对.net core的简单尝试,我发现以往我们开发MV ...

  3. 操作xml文件

    http://www.cnblogs.com/ 一.xml文件体系如下: <?xml version="1.0" encoding="utf-8" ?&g ...

  4. python实现IP地址转换为32位二进制

    python实现IP地址转换为32位二进制 #!/usr/bin/env python # -*- coding:utf-8 -*- class IpAddrConverter(object): de ...

  5. 【Day3】3.提取商城分类结构

    import re with open('index.html','r',encoding='utf-8') as f: html = re.sub('\n','',f.read()) section ...

  6. linux驱动程序与菜单关联

  7. DOS导出文件夹或文件名

    dir /s /w >a.txt 应用dos导出当前目录下的文件夹名称(包括子目录,但是不包括文件,仅仅导出文件夹) dir /s/b/a:d >a.txt

  8. 对于在tinyOS中读取MPU6050数据卡死的总结

    最近这几天一直给tinyOS挂载外设,从最简单的LED.KEY,再到串口,这些都没什么大问题,无非就是先初始化tinyOS,再初始化硬件外设,接着启动tinyOS,然后tinyOS去寻找优先级最高的任 ...

  9. winfrom 自动关闭 重新MessageBox.Show("Test");

    复制代码  自动关闭 调用    AutoClosingMessageBox.Show("添加失败", "提示", 1000); #region alert p ...

  10. Physical Education Lessons CodeForces - 915E (动态开点线段树)

    Physical Education Lessons CodeForces - 915E This year Alex has finished school, and now he is a fir ...