golang处理excel表格

https://github.com/360EntSecGroup-Skylar/excelize

 

当存储图片到xlsx的时候遇到的两个问题:

1.图片缩放建议使用一个开源库(github.com/nfnt/resize),不要使用360库自带的缩放,会有一点问题

2.先对单元格做大小控制,再插入图片,否则有可能会导致一些图片被拉伸

content, err := base64.StdEncoding.DecodeString(imgbase64)
	if err != nil {
		fmt.Println("err1:", err)
		return err
	}

	img, err := jpeg.Decode(bytes.NewReader(content))
	if err != nil {
		fmt.Println("jpeg.decode  err  :", err)
		return err
	}
	// pixelH := height / 2.54 * 90 //像素
	// pixelW := width / 2.54 * 90  //像素
	// pixelSize := pixelH
	// if pixelW img.Bounds().Dy() {
		m = resize.Resize(90, 0, img, resize.Lanczos3)
	} else {
		m = resize.Resize(0, 90, img, resize.Lanczos3)
	}
	buffer := bytes.NewBuffer(nil)
	jpeg.Encode(buffer, m, nil)

	format := `{"lock_aspect_ratio": true}`
	err = xlsx.AddPictureFromBytes(sheet, location, format, "xx", ".jpg", buffer.Bytes())
	if err != nil {
		fmt.Println("AddPicture err  :", err)
		return err
	}
	return nil

 

你可能感兴趣的:(Go项目)