Использовать импорт Excel с каркасом сущностей при вставке записей - PullRequest
1 голос
/ 21 декабря 2011

я использую nopcommerce 1.9, и при создании скидки у меня есть следующий код

discount = new Discount()
            {
                DiscountTypeId = (int)discountType,
                DiscountRequirementId = (int)discountRequirement,
                RequirementSpentAmount = requirementSpentAmount,
                RequirementBillingCountryIs = requirementBillingCountryIs,
                RequirementShippingCountryIs = requirementShippingCountryIs,
                DiscountLimitationId = (int)discountLimitation,
                LimitationTimes = limitationTimes,
                Name = name,
                UsePercentage = usePercentage,
                DiscountPercentage = discountPercentage,
                DiscountAmount = discountAmount,
                StartDate = discountStartDate,
                EndDate = discountEndDate,
                RequiresCouponCode = requiresCouponCode,
                CouponCode = couponCode
            };
            this.DiscountService.InsertDiscount(discount);

, теперь моя задача состоит в том, чтобы в 'CouponCode = couponCode' мне пришлось заменить этот код купона из колонки листов Excel, которая загруженаклиенту, когда он сохраняет скидку.

, и этот лист Excel может содержать 50000 кодов купонов, поэтому каждый купон имеет одинаковую информацию о скидке.

. В этом решении у нас есть структура сущностей.и мы должны хранить данные в этом формате

D1   10%    C1(coupon code from excel sheet)
D1   10%    C2(coupon code from excel sheet)
D1   10%    C3(coupon code from excel sheet)
D1   10%    C4(coupon code from excel sheet)
D1   10%    C5(coupon code from excel sheet)
D1   10%    C6(coupon code from excel sheet)
D1   10%    C7(coupon code from excel sheet)

1 Ответ

0 голосов
/ 23 декабря 2011
if (fuXlsFile.PostedFile != null && !String.IsNullOrEmpty(fuXlsFile.FileName))
            {
                DataTable dt = GetDataFromExcel(filePath, "Sheet1");
                foreach (DataRow dr in dt.Rows)
                {
                    discount = new Discount()
                {
                    DiscountTypeId = (int)discountType,
                    DiscountRequirementId = (int)discountRequirement,
                    RequirementSpentAmount = requirementSpentAmount,
                    RequirementBillingCountryIs = requirementBillingCountryIs,
                    RequirementShippingCountryIs = requirementShippingCountryIs,
                    DiscountLimitationId = (int)discountLimitation,
                    LimitationTimes = limitationTimes,
                    Name = name,
                    UsePercentage = usePercentage,
                    DiscountPercentage = discountPercentage,
                    DiscountAmount = discountAmount,
                    StartDate = discountStartDate,
                    EndDate = discountEndDate,
                    RequiresCouponCode = requiresCouponCode,
                    CouponCode = dr[0].ToString()
                };


                    this.DiscountService.InsertDiscount(discount);
                }
            }

Я нашел способ справиться с этой ситуацией таким образом. До сих пор я должен зацикливать каждую запись, но я думаю, что это необходимость моей работы.

...