c语言中数据类型关键字有哪些,c语言的关键字 c语言的基本数据类型
main函数是C语言中的一个特殊函数,C程序总是从main函数开始。原型的主要功能是:int main(int argc,char * argv[]);其中argc是命令行参数的数量,argv是指向
顺晟科技
2021-06-25 08:47:23
184
蒽~
直接上代码吧
//数据格式以json为基础 如果复制此段代码进行运行请直接通过编译器提示安装所需类库/********这部分代码不用写的哦--直接根据定义好的json数据格式在线生成,在线工具网址在代码下面******************/type AutoGenerated struct { URL []URL `json:"url"` Label Label `json:"label"`}type URL struct { StoreName string `json:"store_name"` ProductID string `json:"product_id"`}type Label struct { StoreName string `json:"store_name"` ProductID string `json:"product_id"`}/************************.这部分代码不用写的哦*******************/func init() { //data 为导出数据 //label 定义为导出 jsonData := []byte(` { "data":[ { "store_name":"watotomama", "product_id":"5942170910885" } ], "label":{ "store_name":"商户名称", "product_id":"没有sku的shopify商品ID" } }`) var basket AutoGenerated err := json.Unmarshal(jsonData, &basket) if err != nil { fmt.Println(err) } result := ExcelData(basket) fmt.Printf("%# v\n", pretty.Formatter(result)) f := excelize.NewFile() // Create a new sheet. index := f.NewSheet("Sheet1") for i, i2 := range result { // Set value of a cell. f.SetCellValue("Sheet1", i, i2) } // Set active sheet of the workbook. f.SetActiveSheet(index) // Save spreadsheet by the given path. if err := f.SaveAs("Book1.xlsx"); err != nil { fmt.Println(err) }}//处理并且组装数据func ExcelData(data AutoGenerated) map[string]interface{} { url := data.URL label := data.Label labelT := reflect.TypeOf(label) tempData := make(map[string]interface{}) labelV := reflect.ValueOf(label) for i := 0; i < len(url); i++ { col := 65 for k := 0; k < labelT.NumField(); k++ { key1 := labelT.Field(k).Name if i == 0 { ch := HandleChr(col)+strconv.Itoa(i+1) ch1 := HandleChr(col)+strconv.Itoa(i+2) tempData[ch] = labelV.Field(k).Interface() tempData[ch1] = reflect.ValueOf(url[i]).FieldByName(key1) } else { ch := HandleChr(col)+strconv.Itoa(i+2) tempData[ch] = reflect.ValueOf(url[i]).FieldByName(key1) } col++ //key := t.Field(k).Name //value := v.Field(k).Interface() } } fmt.Printf("%s\n", pretty.Formatter(tempData)) return tempData}//返回ASICC码func HandleChr(num int) string { ch1 := fmt.Sprintf("%c", rune(num)) return strings.ToUpper(ch1)}
https://oktools.net/json2go
到这里我们就已经导出excel成功了,接下来将导出来的文件上传到阿里云OSS —— 不需要上传到OSS 的童鞋们,可不看!!!
老规矩直接上代码
func UploadOss(file string) { // Endpoint以杭州为例,其它Region请按实际情况填写。 endpoint := "*******" // 阿里云主账号AccessKey拥有所有API的访问权限,风险很高。强烈建议您创建并使用RAM账号进行API访问或日常运维,请登录 https://ram.console.aliyun.com 创建RAM账号。 accessKeyId := "*******" accessKeySecret := "******" bucketName := "*******" // <yourObjectName>上传文件到OSS时需要指定包含文件后缀在内的完整路径,例如abc/efg/123.jpg。 objectName := "post/Book1.xlsx" // <yourLocalFileName>由本地文件路径加文件名包括后缀组成,例如/users/local/myfile.txt。 localFileName := "Book1.xlsx" // 创建OSSClient实例。 client, err := oss.New(endpoint, accessKeyId, accessKeySecret) if err != nil { handleError(err) } // 获取存储空间。 bucket, err := client.Bucket(bucketName) if err != nil { handleError(err) } // 上传文件。 err = bucket.PutObjectFromFile(objectName, localFileName) if err != nil { handleError(err) } fmt.Println("上传成功哦")}func handleError(err error) { fmt.Println("Error:", err) os.Exit(-1)}}
30
2022-11
11
2022-10
29
2022-09
21
2021-10
16
2021-09
30
2021-08