From 316e9b6fc9c16ef6dc1463412aa88f6f4e12f189 Mon Sep 17 00:00:00 2001 From: wangjia <809946525@qq.com> Date: Sun, 14 Jun 2026 08:26:46 +0800 Subject: [PATCH] =?UTF-8?q?fix(backend):=20ImportProducts=20=E6=94=B9?= =?UTF-8?q?=E7=94=A8=20parseUploadedExcel=20=E4=BF=AE=E5=A4=8D=E5=AF=BC?= =?UTF-8?q?=E5=85=A5=E6=88=AA=E6=96=AD=20100=20=E6=9D=A1=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 旧代码直接调用 excelize.GetRows() 有内部 100 行限制; 其他 7 个导入函数在 50b139c 已修复,唯独 ImportProducts 漏网。 统一改用 parseUploadedExcel() 辅助函数,支持 .xls/.xlsx 且无行数截断。 --- backend/internal/handler/import.go | 22 +--------------------- 1 file changed, 1 insertion(+), 21 deletions(-) diff --git a/backend/internal/handler/import.go b/backend/internal/handler/import.go index 76c9e54..b8c13c9 100644 --- a/backend/internal/handler/import.go +++ b/backend/internal/handler/import.go @@ -33,27 +33,7 @@ func NewImportHandler(db *gorm.DB) *ImportHandler { func (h *ImportHandler) ImportProducts(c *gin.Context) { shopID := middleware.GetShopID(c) - file, err := c.FormFile("file") - if err != nil { - c.JSON(http.StatusBadRequest, gin.H{"error": "file required"}) - return - } - - f, err := file.Open() - if err != nil { - c.JSON(http.StatusInternalServerError, gin.H{"error": err.Error()}) - return - } - defer f.Close() - - xl, err := excelize.OpenReader(f) - if err != nil { - c.JSON(http.StatusBadRequest, gin.H{"error": "invalid excel file: " + err.Error()}) - return - } - - sheetName := xl.GetSheetName(0) - rows, err := xl.GetRows(sheetName) + rows, err := parseUploadedExcel(c) if err != nil || len(rows) < 2 { c.JSON(http.StatusBadRequest, gin.H{"error": "empty or invalid sheet"}) return