package main
import (
"database/sql"
"encoding/csv"
"fmt"
_ "github.com/go-sql-driver/mysql"
"log"
"os"
"strconv"
)
var db *sql.DB
type User struct {
Uid int
Name string
Phone string
Email string
Password string
}
var u User
//初始化
func init() {
db, _ = sql.Open("mysql",
"root:a123456@tcp(127.0.0.1:3306)/xxx")
}
func main() {
//設定檔名
filename := "./exportUsers.csv"
//取得數據
users := queryMultiRow()
//定義一個二維數組
column := [][]string{{"手機號碼", "用戶UID", "Email", "用戶名"}}
for _, u := range users {
str := []string{}
str = append(str, u.Phone)
str = append(str, strconv.Itoa(u.Uid))
str = append(str, u.Email)
str = append(str, u.Name)
column = append(column, str)
}
//匯出
ExportCsv(filename, column)
}
//匯出csv文件
func ExportCsv(filePath string, data [][]string) {
fp, err := os.Create(filePath)
if err != nil {
log.Fatalf("建立檔案["+filePath+"]失敗,%v", err)
return
}
defer fp.Close()
//寫入UTF-8 BOM
fp.WriteString("\xEF\xBB\xBF")
//建立一個新的寫入檔案流
w := csv.NewWriter(fp)
w.WriteAll(data)
w.Flush()
}
//查詢多條數據
func queryMultiRow() ([]User) {
rows, err := db.Query("select uid,name,phone,email from `user` where uid > ?", 0)
if err != nil {
fmt.Printf("query failed, err:%v\n", err)
return nil
}
defer rows.Close()
users := []User{}
for rows.Next() {
err := rows.Scan(&u.Uid, &u.Name, &u.Phone, &u.Email)
users = append(users, u)
if err != nil {
fmt.Printf("scan failed, err:%v\n", err)
return nil
}
}
return users
}
[Go]生成CSV
留言
留言分享你的想法!
小黑與程式的邂逅
8會員
123內容數
嗨,我是一名程式設計師,會在這分享開發與學習紀錄。
小黑與程式的邂逅的其他內容
2024/06/05
GOB
Go官方有提供net/rpc的RPC套件。此套件提供GOB的編/解碼,且支援TCP或HTTP傳輸方式。它可以在伺服器端註冊多個不同類型物件。
遠端存取的要求條件
方法的類型可輸出
方法的本體可輸出
方法必須要有兩個參數是輸出或內建
方法的第二個參數是指標型
方法的返回類型為

2024/06/05
GOB
Go官方有提供net/rpc的RPC套件。此套件提供GOB的編/解碼,且支援TCP或HTTP傳輸方式。它可以在伺服器端註冊多個不同類型物件。
遠端存取的要求條件
方法的類型可輸出
方法的本體可輸出
方法必須要有兩個參數是輸出或內建
方法的第二個參數是指標型
方法的返回類型為

2024/06/04
支援Go所有的類型儲存,且可以用原生SQL敘述與跨資料庫查詢。
映射關係
table->struct
record->object
field->attribute
安裝
go get github.com/astaxie/beego/orm
go get github.com

2024/06/04
支援Go所有的類型儲存,且可以用原生SQL敘述與跨資料庫查詢。
映射關係
table->struct
record->object
field->attribute
安裝
go get github.com/astaxie/beego/orm
go get github.com

2024/06/03
Gorm是一款性能極好的ORM,且友善,因此可以明顯的提高開發效率。
特點
全功能ORM
支持連結
支援Hook
支持預先載入
支援交易
支持復合主鍵
支持SQL生成器
支援資料庫自動遷移
支援自訂日誌
可擴充性
所有功能都被測試覆蓋
安裝
go get -u gor

2024/06/03
Gorm是一款性能極好的ORM,且友善,因此可以明顯的提高開發效率。
特點
全功能ORM
支持連結
支援Hook
支持預先載入
支援交易
支持復合主鍵
支持SQL生成器
支援資料庫自動遷移
支援自訂日誌
可擴充性
所有功能都被測試覆蓋
安裝
go get -u gor

你可能也想看
















每年4月、5月都是最多稅要繳的月份,當然大部份的人都是有機會繳到「綜合所得稅」,只是相當相當多人還不知道,原來繳給政府的稅!可以透過一些有活動的銀行信用卡或電子支付來繳,從繳費中賺一點點小確幸!就是賺個1%~2%大家也是很開心的,因為你們把沒回饋變成有回饋,就是用卡的最高境界
所得稅線上申報

每年4月、5月都是最多稅要繳的月份,當然大部份的人都是有機會繳到「綜合所得稅」,只是相當相當多人還不知道,原來繳給政府的稅!可以透過一些有活動的銀行信用卡或電子支付來繳,從繳費中賺一點點小確幸!就是賺個1%~2%大家也是很開心的,因為你們把沒回饋變成有回饋,就是用卡的最高境界
所得稅線上申報

全球科技產業的焦點,AKA 全村的希望 NVIDIA,於五月底正式發布了他們在今年 2025 第一季的財報 (輝達內部財務年度為 2026 Q1,實際日曆期間為今年二到四月),交出了打敗了市場預期的成績單。然而,在銷售持續高速成長的同時,川普政府加大對於中國的晶片管制......

全球科技產業的焦點,AKA 全村的希望 NVIDIA,於五月底正式發布了他們在今年 2025 第一季的財報 (輝達內部財務年度為 2026 Q1,實際日曆期間為今年二到四月),交出了打敗了市場預期的成績單。然而,在銷售持續高速成長的同時,川普政府加大對於中國的晶片管制......

重點摘要:
6 月繼續維持基準利率不變,強調維持高利率主因為關稅
點陣圖表現略為鷹派,收斂 2026、2027 年降息預期
SEP 連續 2 季下修 GDP、上修通膨預測值
---
1.繼續維持利率不變,強調需要維持高利率是因為關稅:
聯準會 (Fed) 召開 6 月利率會議

重點摘要:
6 月繼續維持基準利率不變,強調維持高利率主因為關稅
點陣圖表現略為鷹派,收斂 2026、2027 年降息預期
SEP 連續 2 季下修 GDP、上修通膨預測值
---
1.繼續維持利率不變,強調需要維持高利率是因為關稅:
聯準會 (Fed) 召開 6 月利率會議

支援Go所有的類型儲存,且可以用原生SQL敘述與跨資料庫查詢。
映射關係
table->struct
record->object
field->attribute
安裝
go get github.com/astaxie/beego/orm
go get github.com

支援Go所有的類型儲存,且可以用原生SQL敘述與跨資料庫查詢。
映射關係
table->struct
record->object
field->attribute
安裝
go get github.com/astaxie/beego/orm
go get github.com

GitLab為程式碼管理倉庫,且從8.0開始提供CI/CD。
安裝
更新套件索引
sudo apt update
安裝postfix
sudo apt install ca-certificates curl openssh-server postfix
切換目錄
cd /t

GitLab為程式碼管理倉庫,且從8.0開始提供CI/CD。
安裝
更新套件索引
sudo apt update
安裝postfix
sudo apt install ca-certificates curl openssh-server postfix
切換目錄
cd /t

Docker-Compose負責對container做快速編排。設定檔預設名稱為docker-compose.yml,在檔案中,可以透過COMPOSE_FILE或-f對設定進行定義。
想要將專案透過Docker-Compose部署,需要創建docker-compose.yml和Dockerfile

Docker-Compose負責對container做快速編排。設定檔預設名稱為docker-compose.yml,在檔案中,可以透過COMPOSE_FILE或-f對設定進行定義。
想要將專案透過Docker-Compose部署,需要創建docker-compose.yml和Dockerfile

學習如何使用Python連接MongoDB進行憑證監控,包括建立MongoDB docker-compose、連接MongoDB、讀取yaml並寫入MongoDB、傳入env以及domain寫入MongoDB、讀取MongoDB、修改MongoDB、刪除MongoDB。

學習如何使用Python連接MongoDB進行憑證監控,包括建立MongoDB docker-compose、連接MongoDB、讀取yaml並寫入MongoDB、傳入env以及domain寫入MongoDB、讀取MongoDB、修改MongoDB、刪除MongoDB。

HTTP伺服器端
package main
import (
"net/http"
)
type Refer struct {
handler http.Handler
refer string
}
//實現中介軟體邏輯
func (this *Refer) ServeHTTP(

HTTP伺服器端
package main
import (
"net/http"
)
type Refer struct {
handler http.Handler
refer string
}
//實現中介軟體邏輯
func (this *Refer) ServeHTTP(