美文网首页
golang xlsx

golang xlsx

作者: Feng_Sir | 来源:发表于2018-05-14 17:54 被阅读0次
    package main
    
    import (
        "net/http"
        "io/ioutil"
        "fmt"
        //"encoding/json"
        "net/url"
        "git.oschina.net/xujiang/rongapi-common/utils"
        "github.com/tealeg/xlsx"
        "encoding/json"
        "time"
    )
    
    const (
        RemoteUrl = "http://api.jkcredit.com:8080/mobile?"
        Appid     = "jiaokeyuan"
        Key       = "bedb9297c7bde73d74364ec3d9b4d3ae"
    )
    
    type request struct {
        Name   string //姓名
        IdCode string //身份证号
        Phone  string //手机号
    }
    
    func main() {
        uns := time.Now().UnixNano()
        fmt.Println(uns ) //纳秒
        fmt.Println(uns / 1e6) //纳秒转毫秒
        fmt.Println(uns / 1e9) //纳秒转秒
        newfile := xlsx.NewFile()
        newfileSheet, _ := newfile.AddSheet("Sheet1")
        newfileSheetRow := newfileSheet.AddRow()
        newfileSheetRowCell := newfileSheetRow.AddCell()
        newfileSheetRowCell.Value = "idcard"
        newfileSheetRowCell.Row.AddCell().Value = "mobile"
        newfileSheetRowCell.Row.AddCell().Value = "name"
        newfileSheetRowCell.Row.AddCell().Value = "code"
        newfileSheetRowCell.Row.AddCell().Value = "message"
        newfileSheetRowCell.Row.AddCell().Value = "流水号"
        newfileSheetRowCell.Row.AddCell().Value = "耗时"
    
    
        xlsxFile, _ := xlsx.OpenFile("E:\\apihub\\接口文档\\运营商三要素核查接口文档内部对外\\测试0514.xlsx")
    
        for _, sheet := range xlsxFile.Sheets {
            for _, row := range sheet.Rows {
                if row.Cells[0].String() == "idcard" || row.Cells[1].String() == "mobile" || row.Cells[2].String() == "name" {
                    continue
                }
                fmt.Println(row.Cells[0].String(), row.Cells[1].String(), row.Cells[2].String())
                r := request{row.Cells[2].String(), row.Cells[0].String(), row.Cells[1].String()}
                codeMessage := requesturl(&r)
                newfileSheetRow = newfileSheet.AddRow()
                newfileSheetRowCell = newfileSheetRow.AddCell()
                newfileSheetRowCell.Value = codeMessage.Request.IdCode
                newfileSheetRowCell.Row.AddCell().Value = codeMessage.Request.Phone
                newfileSheetRowCell.Row.AddCell().Value = codeMessage.Request.Name
                newfileSheetRowCell.Row.AddCell().Value = codeMessage.ResultCode
                newfileSheetRowCell.Row.AddCell().Value = codeMessage.ResultMsg
                newfileSheetRowCell.Row.AddCell().Value = codeMessage.TransactionID
                newfileSheetRowCell.Row.AddCell().Value = fmt.Sprint(codeMessage.DTime)
    
            }
        }
        err := newfile.Save("E:\\apihub\\接口文档\\运营商三要素核查接口文档内部对外\\MyXLSXFile.xlsx")
        fmt.Println(err)
    }
    
    func requesturl(r *request) *CodeMessage {
        startTime := time.Now().UnixNano()
        //r := request{}
        //r.Name = "钱文琦"
        //r.IdCode = "4101821238891283"
        //r.Phone = "17692341236"
        values := make(url.Values, 0)
        values.Add("Appid", Appid)
        values.Add("Name", r.Name)
        values.Add("Phone", r.Phone)
        values.Add("IdCode", r.IdCode)
        md5 := utils.Md5(r.IdCode + r.Name + r.Phone + Key)
        values.Add("Sign", md5)
    
        if resp, err := http.Post(RemoteUrl+values.Encode(),
            "", nil); err == nil {
            defer resp.Body.Close()
            resultbyte, _ := ioutil.ReadAll(resp.Body)
            endTime := time.Now().UnixNano()
            //log.Println(string(resultbyte))
            fmt.Println(string(resultbyte))
    
            codeMessage := new(CodeMessage)
            if err = json.Unmarshal(resultbyte, codeMessage); err == nil {
                codeMessage.DTime = endTime - startTime
                codeMessage.Request = *r
                return codeMessage
            }
    
        } else {
            return nil
        }
        return nil
    }
    
    type CodeMessage struct {
        ResultCode    string
        ResultMsg     string
        TransactionID string
        DTime         int64 //差值
        Request       request
    }
    

    相关文章

      网友评论

          本文标题:golang xlsx

          本文链接:https://www.haomeiwen.com/subject/ctvjdftx.html