Hi Nalin,

We have similar requirement where we want to upload/import all the product
information from excel sheet. 

I would really appreciate if you could tell me, how we can achieve that.

Thank you.
Shuchi-

Nalin Chandra wrote:
> 
> Hi All
> 
> I want to import the product related data from excel sheet. I did it but i
> have one problem in this.
> I excel sheet i have absolute path of image now i want to upload the image
> from that absolute path to our application as well store the relative path
> in data base as we did in product content section.
> i am able to store the relative path in database but image in not
> uploading in the required folder.
> 
> Main problem is that here i am not using any html form.
> 
> i paste the code below for it
> 
> public static String uploadCategory(HttpServletRequest request,
> HttpServletResponse response) {
>    
>     try
>         {
>      String filename = "D:/category.xls";
>           WorkbookSettings ws = new WorkbookSettings();
>           ws.setLocale(new Locale("en", "EN"));
>           Workbook workbook = Workbook.getWorkbook(new File(filename),ws);
>           Sheet s  = workbook.getSheet(0);
>           readCategoryDataSheet(s, request);
>           workbook.close();      
>         }
>         catch (IOException e)
>         {
>           e.printStackTrace();
>         }
>         catch (BiffException e)
>         {
>           e.printStackTrace();
>         }
>    
>         return "success";
>     }
>    
>     private static void readCategoryDataSheet(Sheet s, HttpServletRequest
> request)
>     {
>       Cell rowData[] = null;
>       int successCount = 0;
>       int failCount = 0;
>       int rows = s.getRows();
>       int column = s.getColumns();
>       String productCategoryId = "";
>           String productCategoryTypeId = "";
>       String primaryParentCategoryId = "";
>       String categoryName = "";
>       String description = "";
>           String longDescription = "";
>       String categoryImageUrl = "";
>       String linkOneImageUrl = "";
>       String prodCatalogId = "";
>           String prodCatalogCategoryTypeId = "";
>       String sequenceNum = "";
> 
>       for (int i = 1; i < rows; i++) {
>      rowData = s.getRow(i);
>                         if (rowData[0].getContents().length() != 0) {
>                                 for (int j = 0; j < column; j++) {
>                                         switch (j) {
>                                         case 0:
>                                                 productCategoryId =
> rowData[j].getContents();
>                                         case 1:
>                                                 productCategoryTypeId =
> rowData[j].getContents();
>                                         case 2:
>                                                 primaryParentCategoryId =
> rowData[j].getContents();
>                                         case 3:
>                                                 categoryName =
> rowData[j].getContents();
>                                         case 4:
>                                                 description =
> rowData[j].getContents();
>                                         case 5:
>                                                 longDescription =
> rowData[j].getContents();
>                                         case 6:
>                                                 categoryImageUrl =
> rowData[j].getContents();
>                                         case 7:
>                                                 linkOneImageUrl =
> rowData[j].getContents();
>                                         default:
>                                                 break;
>                                         }
>                                 }
>                         }
>                         String imageFilenameFormat =
> UtilProperties.getPropertyValue("catalog", "image.filename.format");
>                         String imageServerPath =
> UtilProperties.getPropertyValue("catalog", "image.server.path");
>                         String imageUrlPrefix =
> UtilProperties.getPropertyValue("catalog", "image.url.prefix");
>                        
>                                                
>                         // upload image
>                         FlexibleStringExpander filenameExpander = new
> FlexibleStringExpander(imageFilenameFormat);
>                         String catImageUrl = "";
>                         String linkImageUrl = "";
>                         if(categoryImageUrl != null &&
> categoryImageUrl.length() > 0){
>                                 Object forLock = new Object();
>                                 String contentType = null;
>                                 String categoryImageLocation =
> filenameExpander.expandString(UtilMisc.toMap("location", "categories",
> "type", "category", "id", productCategoryId));
>                             String filePathPrefix = "";
>                             String filenameToUse = categoryImageLocation;
>                             if (categoryImageLocation.lastIndexOf("/") !=
> -1) {
>                                 filePathPrefix =
> categoryImageLocation.substring(0, categoryImageLocation.lastIndexOf("/")
> + 1); // adding 1 to include the trailing slash
>                                 filenameToUse =
> categoryImageLocation.substring(categoryImageLocation.lastIndexOf("/") +
> 1);
>                             }
>                            
>                             int i1;
>                             if (contentType != null && (i1 =
> contentType.indexOf("boundary=")) != -1) {
>                                 contentType = contentType.substring(i1 +
> 9);
>                                 contentType = "--" + contentType;
>                             }
>                            
>                             String defaultFileName = filenameToUse +
> "_temp";
>                             HttpRequestFileUpload uploadObject = new
> HttpRequestFileUpload();
>                            
> uploadObject.setOverrideFilename(defaultFileName);
>                             uploadObject.setSavePath(imageServerPath + "/"
> + filePathPrefix);
>                             try{
>                             uploadObject.doUpload(request);
>                            
>                             }catch(IOException e){
>                             Debug.logInfo("Image uploading failure",
> module);
>                             }
>                             String categoryImageFileName =
> uploadObject.getFilename();
>                            
>                             if (categoryImageFileName != null &&
> categoryImageFileName.length() > 0) {
>                                 if (categoryImageFileName.lastIndexOf(".")
> > 0 && categoryImageFileName.lastIndexOf(".") <
> categoryImageFileName.length()) {
>                                     filenameToUse +=
> categoryImageFileName.substring(categoryImageFileName.lastIndexOf("."));
>                                 } else {
>                                     filenameToUse += ".jpg";
>                                 }
>                                 try{
>                                 String characterEncoding =
> request.getCharacterEncoding();
>                                 catImageUrl = imageUrlPrefix + "/" +
> filePathPrefix + java.net.URLEncoder.encode(filenameToUse,
> characterEncoding);
>                                 }catch(Exception e){
>                                 System.out.println("Incoding Problem");
>                                 }
>                                
>                                 try {
>                                     File file = new File(imageServerPath +
> "/" + filePathPrefix, defaultFileName);
>                                     File file1 = new File(imageServerPath
> + "/" + filePathPrefix, filenameToUse);
>                                     try {
>                                         file1.delete();
>                                     } catch(Exception e) {
>                                         System.out.println("error deleting
> existing file (not neccessarily a problem)");
>                                     }
>                                     file.renameTo(file1);
>                                 } catch(Exception e) {
>                                     e.printStackTrace();
>                                 }
>                             }
>                         }
>                        
>                         // end of upload image
>                    
>               Timestamp fromDate = UtilDateTime.nowTimestamp();
>               GenericDelegator delegator = (GenericDelegator)
> request.getAttribute("delegator");
>               try {
>              GenericValue DataImportCategoryList =
> delegator.findByPrimaryKey("DataImportCategory",
> UtilMisc.toMap("productCategoryId", productCategoryId));
>                      
>                       if(DataImportCategoryList != null){
>                       String categoryId =
> DataImportCategoryList.getString("productCategoryId");
>                       if(categoryId.equals(productCategoryId)){
>                       failCount++;
>                       }
>                       }else {
>             GenericValue newImportCategory =
> delegator.makeValue("DataImportCategory", null);
>            
>         newImportCategory.set("productCategoryId",
> productCategoryId.trim());
>         if(productCategoryTypeId != null && productCategoryTypeId.length()
> > 0){
>         newImportCategory.set("productCategoryTypeId",
> productCategoryTypeId.trim());
>                                     } else {
>                                    
> newImportCategory.set("productCategoryTypeId", "CATALOG_CATEGORY");
>                                     }
>         if(primaryParentCategoryId != null &&
> primaryParentCategoryId.length() > 0)
>         newImportCategory.set("primaryParentCategoryId",
> primaryParentCategoryId);
>         newImportCategory.set("categoryName", categoryName.trim());
>         newImportCategory.set("description", description);
>         newImportCategory.set("longDescription", longDescription);
>         newImportCategory.set("categoryImageUrl", catImageUrl);
>         newImportCategory.set("linkOneImageUrl", linkImageUrl);
>                                     newImportCategory.set("fromDate",
> fromDate);
>                                       try {
>                                          
> delegator.create(newImportCategory);
>                                           Debug.logInfo("Successfully
> imported category ["+productCategoryId+" from row no "+ i+1 +"].",
> module);
>                                           successCount++;
>                                       } catch (GenericEntityException e) {
>                                           Debug.logWarning(e.getMessage(),
> module);
>                                       }
>            
>               }
>               } catch(GenericEntityException e) {
>       Debug.logError("Exception occured :"+e.getMessage(), module);
>        }
>       }
>      
>     }
> 
> 
> it create the temp file in corresponding directory but there is no actual
> image at that path.
> 
> So any one have any idea regarding this please suggest me.
> 
> 
> Thanks.
> 
> Nalin Chandra
> 

-- 
View this message in context: 
http://n4.nabble.com/how-to-import-data-from-excel-sheet-tp160724p585955.html
Sent from the OFBiz - User mailing list archive at Nabble.com.

Reply via email to