提交 8652aa9a 编写于 作者: aaronchen2k2k's avatar aaronchen2k2k

fix prefix range issue

上级 55272195
......@@ -12,7 +12,7 @@ import (
func main() {
filePath := "data/company/v2.xlsx"
sheetName := "company"
sheetName1 := "company"
fileUtils.MkDirIfNeeded(filepath.Dir(filePath))
......@@ -21,33 +21,72 @@ func main() {
&model.DataCompany{},
)
pos := make([]model.DataCompany, 0)
db.Order("id ASC").Find(&pos)
pos1 := make([]model.DataCompany, 0)
db.Order("id ASC").Find(&pos1)
f := excelize.NewFile()
index := f.NewSheet(sheetName)
f.SetActiveSheet(index)
index1 := f.NewSheet(sheetName1)
f.SetActiveSheet(index1)
sheet1 := f.GetSheetName(0)
f.DeleteSheet(sheet1)
var infos1 []model.TableInfo
db.Raw("desc " + model.DataCompany{}.TableName()).Scan(&infos1)
excelColNameArr1, excelColNameHeader1 := comm.GetExcelColsByTableDef(infos1)
fieldNames1 := comm.GetStructFields(model.DataCompany{})
// gen headers
for index, name := range excelColNameHeader1 {
excelColName := excelColNameArr1[index]
excelColId := fmt.Sprintf("%s%d", excelColName, 1)
f.SetCellValue(sheetName1, excelColId, name)
}
// gen rows
for rowIndex, po := range pos1 {
for fieldIndex, fieldName := range fieldNames1 {
val := ""
if fieldName == "Id" {
val = fmt.Sprintf("%d", reflect.ValueOf(po).FieldByName(fieldName).Uint())
} else {
val = reflect.ValueOf(po).FieldByName(fieldName).String()
}
excelColName := excelColNameArr1[fieldIndex]
excelColId := fmt.Sprintf("%s%d", excelColName, rowIndex+2)
f.SetCellValue(sheetName1, excelColId, val)
}
}
sheetName2 := "company_abbreviation"
pos := make([]model.DataCompanyAbbreviation, 0)
db.Order("id ASC").Find(&pos)
index2 := f.NewSheet(sheetName2)
f.SetActiveSheet(index2)
var infos []model.TableInfo
db.Raw("desc " + model.DataCompany{}.TableName()).Scan(&infos)
db.Raw("desc " + model.DataCompanyAbbreviation{}.TableName()).Scan(&infos)
excelColNameArr, excelColNameHeader := comm.GetExcelColsByTableDef(infos)
fieldNames := comm.GetStructFields(model.DataCompany{})
excelColNameArr2, excelColNameHeader2 := comm.GetExcelColsByTableDef(infos)
fieldNames2 := comm.GetStructFields(model.DataCompanyAbbreviation{})
// gen headers
for index, name := range excelColNameHeader {
excelColName := excelColNameArr[index]
for index, name := range excelColNameHeader2 {
excelColName := excelColNameArr2[index]
excelColId := fmt.Sprintf("%s%d", excelColName, 1)
f.SetCellValue(sheetName, excelColId, name)
f.SetCellValue(sheetName2, excelColId, name)
}
// gen rows
for rowIndex, po := range pos {
for fieldIndex, fieldName := range fieldNames {
for fieldIndex, fieldName := range fieldNames2 {
val := ""
if fieldName == "Id" {
......@@ -56,12 +95,13 @@ func main() {
val = reflect.ValueOf(po).FieldByName(fieldName).String()
}
excelColName := excelColNameArr[fieldIndex]
excelColName := excelColNameArr2[fieldIndex]
excelColId := fmt.Sprintf("%s%d", excelColName, rowIndex+2)
f.SetCellValue(sheetName, excelColId, val)
f.SetCellValue(sheetName2, excelColId, val)
}
}
f.SetActiveSheet(index1)
f.SaveAs(filePath)
}
......@@ -5,21 +5,22 @@ author: zentao
version: 1.0
fields:
# - field: f11
# range: a-z
# prefix: "1-9"
# postfix: "\t"
#
# - field: f22
# range: a-z
# postfix: ", "
- field: f1
from: chronology.v2.yaml
use: chronology
postfix: ", "
- field: f2
from: city.v2.yaml
use: name
postfix: "\t"
- field: f3
from: color.v1.yaml
use: chinese
postfix: "\t"
\ No newline at end of file
postfix: "\t"
- field: f4
from: company.v2.yaml
use: name
postfix: "\t"
title: 城市
desc:
author: wwccss
version: 1.0
field: city
instances:
- instance: name
fields:
- field: part1
from: city.v2.city
select: name
- instance: code
fields:
- field: part1
from: city.v2.city
select: code
- instance: zip_code
fields:
- field: part1
from: city.v2.city
select: name
- instance: state
fields:
- field: part1
from: city.v2.city
select: zip_code
- instance: state_short
fields:
- field: part1
from: city.v2.city
select: state_short
- instance: state_short2
fields:
- field: part1
from: city.v2.city
select: state_short2
title: 公司
desc:
author: wwccss
version: 1.0
field: company
instances:
- instance: name
fields:
- field: part1
from: company.v2.company
select: content
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册