golang 导出数据到csv文件

18393910396 · 2018-05-31 11:00:49 · 5243 次点击 · 预计阅读时间 1 分钟 · 大约8小时之前 开始浏览    
这是一个创建于 2018-05-31 11:00:49 的文章,其中的信息可能已经有所发展或是发生改变。

//  导出设备列表信息到csv
func (ba *businessActor) ExportDeviceListInfo(deviceList []device.AllDevice, filename string) error {
    // 创建文件
    newFile, err := os.Create(filename)
    if err != nil {
        return errors.Wrap(err, "创建文件失败")
    }
    defer func() {
        newFile.Close()
    }()
    // 写入UTF-8
    newFile.WriteString("\xEF\xBB\xBF") // 写入UTF-8 BOM,防止中文乱码
    // 写数据到csv文件
    w := csv.NewWriter(newFile)
    header := []string{"房间号", "门锁信号", "门锁电量", "柚控名称", "柚控状态"} //标题
    data := [][]string{
        header,
    }
    for k, _ := range deviceList {
        hostIsOnline := ""
        if deviceList[k].BoxOnline {
            hostIsOnline := "在线"
        } else {
            hostIsOnline := "离线"
        }
        context := []string{
            deviceList[k].RoomName,
            strconv.Itoa(deviceList[k].Rssi) + "%",
            strconv.Itoa(deviceList[k].Electric) + "%",
            deviceList[k].BoxName,
            hostIsOnline,
        }
        data = append(data, context)
    }
    // WriteAll方法使用Write方法向w写入多条记录,并在最后调用Flush方法清空缓存。
    w.WriteAll(data)
    w.Flush()
    return err
}

有疑问加站长微信联系(非本文作者))

入群交流(和以上内容无关):加入Go大咖交流群,或添加微信:liuxiaoyan-s 备注:入群;或加QQ群:692541889

5243 次点击  
加入收藏 微博
暂无回复
添加一条新回复 (您需要 登录 后才能回复 没有账号 ?)
  • 请尽量让自己的回复能够对别人有帮助
  • 支持 Markdown 格式, **粗体**、~~删除线~~、`单行代码`
  • 支持 @ 本站用户;支持表情(输入 : 提示),见 Emoji cheat sheet
  • 图片支持拖拽、截图粘贴等方式上传