You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
49 lines
1.5 KiB
49 lines
1.5 KiB
2 months ago
|
package business
|
||
|
|
||
|
import (
|
||
|
"fmt"
|
||
|
"github.com/360EntSecGroup-Skylar/excelize"
|
||
|
"go.mongodb.org/mongo-driver/bson"
|
||
|
"strconv"
|
||
|
"wss-pool/config"
|
||
|
"wss-pool/internal/data"
|
||
|
"wss-pool/logging/applogger"
|
||
|
"wss-pool/pkg/model/stock"
|
||
|
)
|
||
|
|
||
|
// TickerToExcel
|
||
|
//
|
||
|
// @Description: 导出excel
|
||
|
func TickerToExcel() {
|
||
|
data.Mgo_init(config.Config.Mongodb)
|
||
|
filter := bson.M{"ticker": bson.M{"$regex": "USD$"}}
|
||
|
res := make([]stock.ForexData, 0)
|
||
|
data.MgoFindRes(data.ForexList, filter, &res)
|
||
|
applogger.Debug("TickerToExcel to info:", len(res))
|
||
|
// 创建Excel文件
|
||
|
file := excelize.NewFile()
|
||
|
sheetName := "Sheet1"
|
||
|
// 写入表头
|
||
|
file.SetCellValue(sheetName, "A1", "code")
|
||
|
file.SetCellValue(sheetName, "B1", "Name")
|
||
|
file.SetCellValue(sheetName, "C1", "Country")
|
||
|
file.SetCellValue(sheetName, "D1", "PrimaryExchange")
|
||
|
file.SetCellValue(sheetName, "E1", "Symbol")
|
||
|
file.SetCellValue(sheetName, "F1", "NumericCode")
|
||
|
// 写入数据
|
||
|
row := 2 // 从第二行开始写入数据
|
||
|
for _, val := range res {
|
||
|
file.SetCellValue(sheetName, "A"+strconv.Itoa(row), val.Ticker)
|
||
|
file.SetCellValue(sheetName, "B"+strconv.Itoa(row), "")
|
||
|
file.SetCellValue(sheetName, "C"+strconv.Itoa(row), "")
|
||
|
file.SetCellValue(sheetName, "D"+strconv.Itoa(row), "")
|
||
|
file.SetCellValue(sheetName, "E"+strconv.Itoa(row), "")
|
||
|
file.SetCellValue(sheetName, "F"+strconv.Itoa(row), "")
|
||
|
row++
|
||
|
}
|
||
|
err := file.SaveAs(fmt.Sprintf("./cmd/%s.xlsx", "forex"))
|
||
|
if err != nil {
|
||
|
applogger.Error("TickerToExecl to info err:", err)
|
||
|
}
|
||
|
}
|