博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
golang 文件导入数据追加sheet
阅读量:6330 次
发布时间:2019-06-22

本文共 1863 字,大约阅读时间需要 6 分钟。

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
}

转载于:https://www.cnblogs.com/craneboos/p/9081427.html

你可能感兴趣的文章
泛型排序器TComparer
查看>>
9个offer,12家公司,35场面试,从微软到谷歌,应届计算机毕业生的2012求职之路...
查看>>
创建符合标准的、有语意的HTML页面——ASP.NET 2.0 CSS Friendly Control Adapters 1.0发布...
查看>>
Adobe驳斥Flash过度耗电论 称HTML5更耗电
查看>>
No!No!No! It's not fashion!
查看>>
艰困之道中学到的经验教训
查看>>
互联网生态建设落地五大挑战——保险科技生态建设 ...
查看>>
进行短视频app开发工作时,可以加入它来保护青少年 ...
查看>>
25G DAC无源高速线缆和25G光模块之间的区别
查看>>
乐乐茶完成近2亿元Pre-A轮融资,祥峰投资领投
查看>>
clickhouse修改时区
查看>>
CSS_定位
查看>>
第二十四章:页面导航(六)
查看>>
百度、长沙加码自动驾驶,湖南阿波罗智行科技公司成立 ...
查看>>
Java面试笔试题大汇总一(最全+详细答案)
查看>>
10 个 Linux 中方便的 Bash 别名
查看>>
[Server] 服务器配置SSH登录邮件通知
查看>>
全新 DOCKER PALS 计划上线,带给您不一样的参会体验! ...
查看>>
Android开发之自定义View(二)
查看>>
python爬虫之微打赏(scrapy版)
查看>>