当前位置: 首页 > 后端技术 > PHP

去语言战斗!!导出excel上传到阿里云OSS

时间:2023-03-29 20:31:00 PHP

-编码*这部分代码不用写——直接根据定义的json数据格式在线生成,在线工具地址在代码************下*******/typeAutoGeneratedstruct{URL[]URL`json:"url"`Label标签`json:"label"`}typeURLstruct{StoreNamestring`json:"store_name"`ProductIDstring`json:"product_id"`}typeLabelstruct{StoreNamestring`json:"store_name"`ProductIDstring`json:"product_id"`}/***********************。这部分代码不用写哦*******************/funcinit(){//data为export数据//label定义为exportjsonData:=[]byte(`{"data":[{"store_name":"watotomama","product_id":"5942170910885"}],"label":{"store_name":"商家名称","product_id":"ShopifyproductIDwithoutsku"}}`)varbasketAutoGeneratederr:=json.Unmarshal(jsonData,&basket)iferr!=nil{fmt.Println(err)}result:=ExcelData(basket)fmt.Printf("%#v\n",pretty.Formatter(result))f:=excelize.NewFile()//创建一个新工作表。index:=f.NewSheet("Sheet1")fori,i2:=rangeresult{//设置一个单元格的值。f.SetCellValue("Sheet1",i,i2)}//设置工作簿的活动工作表。f.SetActiveSheet(index)//按给定路径保存电子表格。如果错误:=f.SaveAs("Book1.xlsx");err!=nil{fmt.Println(err)}}//处理并组数据funcExcelData(dataAutoGenerated)map[string]interface{}{url:=data.URLlabel:=data.LabellabelT:=reflect.TypeOf(label)tempData:=make(map[string]interface{})labelV:=reflect.ValueOf(label)fori:=0;我<长度(网址);i++{col:=65对于k:=0;k上传文件需要指定文件后缀到OSS的完整路径包括,例如abc/efg/123.jpg。objectName:="post/Book1.xlsx"//由本地文件路径加上包含后缀的文件名组成,例如/users/local/myfile.txt。localFileName:="Book1.xlsx"//创建一个OSSClient实例。client,err:=oss.New(endpoint,accessKeyId,accessKeySecret)iferr!=nil{handleError(err)}//获取存储空间。bucket,err:=client.Bucket(bucketName)iferr!=nil{handleError(err)}//上传文件。err=bucket.PutObjectFromFile(objectName,localFileName)iferr!=nil{handleError(err)}fmt.Println("上传成功")}funchandleError(errerror){fmt.Println("错误:",err)操作系统。退出(-1)}}