Go 常用方法一:文件读取、处理和操作 Excel

853 阅读2分钟

各位朋友你们好,欢迎来到Go说。

今天我们来看看如何用 Go 语言来对文件进行一些基本的处理​。

一、获取某个目录下的所有文件

package main

import (
    "io/ioutil"
    "fmt"
)

func main() {
    // 读取当前目录中的所有文件和子目录
    files, err := ioutil.ReadDir(`D:/`)
    if err != nil {
        panic(err)
    }
    // 获取文件名组成的切片,并遍历打印每一个文件名
    for _, file := range files {
        fmt.println(file.Name())
    }
}

二、读取文本文件并输出内容

package main

import (
    "io/ioutil"
    "fmt"
)

func main() {
    // 读取文本文件的内容
    txt, err := ioutil.ReadFile(`test.txt`)
    defer txt.Close()
    if err != nil {
        panic(err)
    }

    // 将字节流转换为字符串
    content := string(txt)

    // 输出文本内容
    fmt.println(content)
}

三、将字符串保存成文件

package main

import (
    "io/ioutil"
    "fmt"
)

func main() {
    // 将保存的字符串转换为字节流
    str := []byte(`要保存入文件的字符串`)

    // 保存到文件
    ioutil.WriteFile(`保存文件的文件名.txt`, str, 0666)
}

四、文件追加内容

package main

import 
("os"

func main() {
    // 要追加的字符串
    str := []byte("\n" + `这是要追加在末尾的话`)

    // 以追加模式打开文件
    txt, err := os.OpenFile(`test.txt`, os.O_APPEND, 0666)

    // 以追加模式打开文件,当文件不存在时生成文件
    // txt, err := os.OpenFile(`test.txt`, os.O_APPEND|os.O_CREATE, 0666)

    defer txt.Close()
    if err != nil {
        panic(err)
    }

    // 写入文件
    n, err := txt.Write(str)
    // 当 n != len(str) 时,返回非零错误
    if err == nil && n != len(str) {
        fmt.println(`错误代码:`, n)
        panic(err)
    }
}

五、关于Excel

给大家推荐一个用 Go 操作 Excel 的库​:Excelize​。

Excelize 是 Go 语言编写的用于操作 Office Excel 文档基础库,基于 ECMA-376,ISO/IEC 29500 国际标准。可以使用它来读取、写入由 Microsoft Excel™ 2007 及以上版本创建的电子表格文档。支持 XLAM / XLSM / XLSX / XLTM / XLTX 等多种文档格式,高度兼容带有样式、图片(表)、透视表、切片器等复杂组件的文档,并提供流式读写 API,用于处理包含大规模数据的工作簿。可应用于各类报表平台、云计算、边缘计算等系统。

关于 Excelize 的各种好用的方法,我打算单独写一篇文章,和大家分享​。

项目链接:github.com/xuri/exceli…

谢谢你的阅读!欢迎关注我的微信公众号:Go说,和我一起快乐学 Go!