Golang语言社区--Go操作CSV文件

大家好,我是Golang语言社区主编彬哥;今天给大家讲解一篇关于Go语言操作CSV文件的相关的。

读取CSV文件 如下:

读取的函数:

puck.csv

读取函数:

// globalData数据结构所在目录
package Global_Define
// csv配置表
var G_StCard2InfoBaseST map[string]*Card2InfoBase // 卡牌活动结构

// 卡牌活动结构
type Card2InfoBase struct {
	Card2ID       string // 卡牌的ID
	Card2Msg      string // 卡牌的描述
	Card2GameName string // 卡牌的地点
	Card2GameID   string // 策划看到的类型
	PicPath       string //  图片路径
	Type          string // 卡牌类型
}

--------------------------------------------------
package main

import (
	"项目目录/globalData"
	"encoding/csv"
	"fmt"
	"io/ioutil"
	"strconv"
	"strings"
)
	
// 获取卡牌的列表
func ReadCsv_ConfigFile_StCard2List_Fun() bool {
	// 获取数据,按照文件
	fileName := "puke.csv"
	fileName = "./csv/" + fileName
	cntb, err := ioutil.ReadFile(fileName)
	if err != nil {
		return false
	}
	// 读取文件数据
	r2 := csv.NewReader(strings.NewReader(string(cntb)))
	ss, _ := r2.ReadAll()
	sz := len(ss)

	// 循环取数据
	for i := 1; i < sz; i++ {

		Infotmp := new(Global_Define.Card2InfoBase)
		Infotmp.Card2ID = ss[i][0]
		Infotmp.Card2Msg = ss[i][1]
		Infotmp.Card2GameName = ss[i][2]
		Infotmp.Card2GameID = ss[i][3]
		Infotmp.PicPath = ss[i][4]
		Infotmp.Type = ss[i][5]
		Global_Define.G_StCard2InfoBaseST[Infotmp.Card2ID] = Infotmp
	}
	fmt.Println(Global_Define.G_StCard2InfoBaseST)
	return true
}

写入CSV 文件(仅仅是个简单的例子,如果有针对CSV文件复杂操作有问题的,可以直接留言,仅限私下交流):

package main

import (
	"encoding/csv"
	"fmt"
	"os"
)

func main() {
	f, err := os.Create("test.csv") //创建文件
	if err != nil {
		panic(err)
	}
	defer f.Close()

	f.WriteString("\xEF\xBB\xBF") // 写入UTF-8 BOM

	w := csv.NewWriter(f) //创建一个新的写入文件流
	data := [][]string{
		{"1", "中国", "23"},
		{"2", "美国", "23"},
		{"3", "bb", "23"},
		{"4", "bb", "23"},
		{"5", "bb", "23"},
	}
	w.WriteAll(data) //写入数据
	w.Flush()
}

原创声明,本文系作者授权云+社区-专栏发表,未经许可,不得转载。

如有侵权,请联系 zhuanlan_guanli@qq.com 删除。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏数据结构与算法

1017. 价格查询

1017. 价格查询 (Standard IO) 时间限制: 1000 ms  空间限制: 262144 KB  具体限制  题目描述 编程实现以下功能:查询...

2826
来自专栏Golang语言社区

Golang URL解析

Golang URL解析 今天利用课余时间看了一下Go语言的URL解析,于是就实践了一下,为了大家一起学习交流,故贴出来和大家一起分享,如有什么错误,请各位大神...

35612
来自专栏Java3y

移动商城第四篇(商品管理)【添加商品续篇、商品审核和上下架、前台展示、后台筛选】

属性选项卡 第三个选项卡涉及到了我们的手机属性,因此,还是需要用到我们其他的数据库表:EB_FEATURE 继续做逆向工程: ? 这里写图片描述 查询出普通属性...

6109
来自专栏快乐八哥

Cmd Markdown编辑器简明语法手册

标签: Cmd-Markdown 1. 斜体和粗体 使用 * 和 ** 表示斜体和粗体。 示例: 这是 斜体,这是 粗体。 2. 分级标题 使用 === 表示一...

1937
来自专栏不会写文章的程序员不是好厨师

Spring源码初探-IOC(2)-Bean的初始化-自定义标签解析

前面一文介绍的是Spring对于DefaultElement的解析,例如bean/import/alias等,但是在Spring体系中也存在很多扩展标签,例如事...

523
来自专栏PPV课数据科学社区

【工具】EXCEL十大搞笑操作排行榜

大名鼎鼎EXCEL江湖上谁人不知,谁人不晓呀,纵使你没见过EXCEL,也见过数据在跑吧?可惜的是,经常用EXCEL表哥表妹,甚至操作六七年 的江湖老手,或多或少...

3286
来自专栏菩提树下的杨过

Silverlight的自定义tooltip提示工具条

这种应用场景其实很多,比如游戏中装备/魔法的选择菜单,这里借用了"深蓝色右手"的一张图  再比如聊天室中的文本颜色设置  ? 虽然sl的ToolTipServ...

2056
来自专栏ASP.NET MVC5 后台权限管理系统

ASP.NET MVC5+EF6+EasyUI 后台管理系统(48)-工作流设计-起草新申请

创建新表单之后,我们就可以起草申请了,申请按照严格的表单步骤和分支执行。 起草的同时,我们分解流转的规则中的审批人并保存,具体流程如下 接下来创建DrafCon...

1836
来自专栏禁心尽力

Java设计模式之适配器设计模式(项目升级案例)

 今天是我学习到Java设计模式中的第三个设计模式了,但是天气又开始变得狂热起来,对于我这个凉爽惯了的青藏人来说,又是非常闹心的一件事儿,好了不管怎么样,目标...

2088
来自专栏Golang语言社区

Golang语言社区--Go语言创建csv文件

大家好,我是Golang语言社区主编彬哥;今天给大家讲解一篇关于Go语言操作CSV文件的相关的。

882

扫描关注云+社区