zoukankan      html  css  js  c++  java
  • golang 文件导入数据追加sheet

    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
    }
  • 相关阅读:
    .NET Core单文件发布静态编译AOT CoreRT
    Orchard Core Framework:ASP.NET Core 模块化,多租户框架
    IdentityServer4 ASP.NET Core的OpenID Connect OAuth 2.0框架学习保护API
    ASP.NET Core DotNetCore 开源GitServer 实现自己的GitHub
    ASP.NET Core 中间件Diagnostics使用 异常和错误信息
    c# – Asp.Net Core MVC中Request.IsAjaxRequest()在哪里?
    使用cookie来做身份认证
    AspNetCore 2.2 新特性---HealthCheck
    AspNetCore 限流中间件IpRateLimitMiddleware 介绍
    (六十二)c#Winform自定义控件-警灯(工业)
  • 原文地址:https://www.cnblogs.com/craneboos/p/9081427.html
Copyright © 2011-2022 走看看