LQH入职第三天(2)

1、获取excel表的数据第一列
xlsx, err := excelize.OpenFile("/Users/***/Desktop/kk.xlsx")
if err != nil {
fmt.Println(err)
}
rows := xlsx.GetRows(“Sheet1”)
for _,row :=range rows{
fmt.Println(row[0]);
}
2、go 字符串处理
(1)字符串截取
str := “XBodyContentX”
content := str[1 : len(str)-1]
(2)字符串分割成数组
str_arr := strings.Split(res, " ")
3、读取csv文件
(1)打开文件
fs, err := os.Open(fileName)
if err != nil {
log.Fatalf(“can not open the file, err is %+v”, err)
}
(2)获取csv对象
r := csv.NewReader(fs)
(3)循环读取文件

oneFlag := true

	//读取处理
	for {
		row, err := r.Read()
		if err != nil && err != io.EOF {
			log.Fatalf("can not read, err is %+v", err)
		}
		if err == io.EOF {
			break
		}
		//跳过第一行
		if oneFlag {
			oneFlag = false
			continue;
		}
		fmt.Println(row)
	}

注:
csv会自动将读取的文件进行分割成字符串数组。

Read方法返回错误时,不代表没有读取到任何数据,可能是数据被读完了时返回的io.EOF
从 r 中读取数据,直到 EOF 或发生错误。其返回值 n 为读取的字节数。除 io.EOF 之外,在读取过程中遇到的任何错误也将被返回。

https://www.jianshu.com/p/dad73b68e7eb
4、写入csv文件

newFileName := "D:\\gotest\\src\\source\\newfile.csv"
    //这样打开,每次都会清空文件内容
    //nfs, err := os.Create(newFileName)
 
    //这样可以追加写
    nfs, err := os.OpenFile(newFileName, os.O_RDWR|os.O_CREATE, 0666)
    if err != nil {
        log.Fatalf("can not create file, err is %+v", err)
    }
    defer nfs.Close()
    nfs.Seek(0, io.SeekEnd)
 
    w := csv.NewWriter(nfs)
    err = w.Write(data)
    if err != nil {
        log.Fatalf("can not write, err is %+v", err)
    }
    //这里必须刷新,才能将数据写入文件。
    w.Flush()
    
//一次写入多行
    var newContent [][]string
    newContent = append(newContent, []string{"1", "2", "3", "4", "5", "6"})
    newContent = append(newContent, []string{"11", "12", "13", "14", "15", "16"})
    newContent = append(newContent, []string{"21", "22", "23", "24", "25", "26"})
    w.WriteAll(newContent)

https://blog.csdn.net/weixin_34258078/article/details/92837677

https://www.cnblogs.com/zhangym/p/6142738.html

file, err := os.OpenFile("111.csv", os.O_CREATE|os.O_RDWR, 0644)
     if err != nil {
        fmt.Println("open file is failed, err: ", err)
     }
     defer file.Close()
     // 写入UTF-8 BOM,防止中文乱码
     file.WriteString("\xEF\xBB\xBF")
     w := csv.NewWriter(file)
     w.Write([]string{"开发者名称", "开发者邮箱", "应用名称"})
     // 写文件需要flush,不然缓存满了,后面的就写不进去了,只会写一部分
     w.Flush()

https://www.cnblogs.com/chaselogs/p/9454953.html

5、http下载文件

package main

import (
    "io"
    "net/http"
    "os"
)

var (
    url = "http://127.0.0.1:1789/src/qq.exe"
)

func main() {
    res, err := http.Get(url)
    if err != nil {
        panic(err)
    }
    f, err := os.Create("qq.exe")
    if err != nil {
        panic(err)
    }
    io.Copy(f, res.Body)
}

https://www.jianshu.com/p/10c857270947

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值