2010-08-11 13 views
5

Czy ktoś może wskazać mi właściwy kierunek zapisu pliku excel w java? Nie rozumiem linków, które znalazłem w Internecie. Czy mógłbyś mi wysłać link lub cokolwiek, co mógłbym wykonać?pisanie do programu Excel w języku Java

Dziękuję J

+0

Co linki ty mówisz? Istnieje wiele różnych sposobów pisania na temat excelowania plików z Java. Czy jest jakiś konkretny API lub biblioteka, z którą masz problemy? – FloppyDisk

+0

możliwy duplikat [JSP generującego arkusz kalkulacyjny Excel (XLS) do pobrania] (http://stackoverflow.com/questions/477886/jsp-generating-excel-spreadsheet-xls-to-download) –

Odpowiedz

12

Inną alternatywą dla Apache POI jest JExcelAPI, który (IMO) jest łatwiejszy w użyciu API. Some examples:

WritableWorkbook workbook = Workbook.createWorkbook(new File("output.xls")); 

WritableSheet sheet = workbook.createSheet("First Sheet", 0); 

Label label = new Label(0, 2, "A label record"); 
sheet.addCell(label); 

Number number = new Number(3, 4, 3.1459); 
sheet.addCell(number); 
+0

Awesome API. O wiele łatwiej niż Apache POI. Dziękuję Ci! – JCab

0

Użyłem Apache's POI Library kiedy miałem pisać excel plików z Java. Znalazłem to dość proste, kiedy już to zrozumiesz. Java World ma dobry tutorial o rozpoczęciu korzystania z UM, które uważam za bardzo pomocne.

1

Tutaj mam zamiar dać przykładowy przykład, jak napisać Excel; to wykorzystać w pom.xml

<dependency> 
    <groupId>net.sf.jxls</groupId> 
    <artifactId>jxls-core</artifactId> 
    <version>0.9</version> 
</dependency> 

klasę Model:

public class Products {  
    private String productCode1;  
    private String productCode2;  
    private String productCode3; 

    constructors,setters and getters  
} 

główne klasy:

public class WriteExcel { 

    public void writeExcel() { 

     Collection staff = new HashSet();  

     staff.add(new Products("101R15ss0100", "PALss Kids 1.5 A360 ", "321"));  
     staff.add(new Products("101R1ss50100", "PAL sKids 1.5 A360 ", "236"));  

     Map beans = new HashMap();  

     beans.put("products", staff);  
     XLSTransformer transformer = new XLSTransformer();  

     try {  
      transformer.transformXLS(templateFileName, beans, destFileName); 

      System.out.println("Completed!!");  

     } catch (ParsePropertyException e) {  
      System.out.println("In ParsePropertyException");  
      e.printStackTrace();  
     } catch (IOException e) {  
      System.out.println("In IOException");  
      e.printStackTrace();  
     } 
    } 

    public static void main(String[] args) {  
     WriteExcel writeexcel = new WriteExcel();  
     writeexcel.writeExcel();  
    }  

}  
-1
public class ExcelUtils { 

    private static XSSFSheet ExcelWSheet; 
    private static XSSFWorkbook ExcelWBook; 
    private static XSSFCell Cell; 
    private static XSSFRow Row; 
    File fileName = new File("C:\\Users\\satekuma\\Pro\\Fund.xlsx"); 

    public void setExcelFile(File Path, String SheetName) throws Exception { 
     try { 
      FileInputStream ExcelFile = new FileInputStream(Path); 
      ExcelWBook = new XSSFWorkbook(ExcelFile); 
      ExcelWSheet = ExcelWBook.getSheet(SheetName); 
     } catch (Exception e) { 
      throw (e); 
     } 
    } 


    public static String getCellData(int RowNum, int ColNum) throws  Exception { 
     try { 
      Cell = ExcelWSheet.getRow(RowNum).getCell(ColNum); 
      String CellData = Cell.getStringCellValue(); 
      return CellData; 
     } catch (Exception e) { 
      return ""; 
     } 
    } 

    public static void setCellData(String Result, int RowNum, int ColNum, File Path) throws Exception { 
     try { 
      Row = ExcelWSheet.createRow(RowNum - 1); 
      Cell = Row.createCell(ColNum - 1); 
      Cell.setCellValue(Result); 
      FileOutputStream fileOut = new FileOutputStream(Path); 
      ExcelWBook.write(fileOut); 
      fileOut.flush(); 
      fileOut.close(); 
     } catch (Exception e) { 
      throw (e); 
     } 
    } 
} 
1

Oto podstawowy kod do zapisu danych w pliku excel (.xls).

import java.io.FileNotFoundException; 
import java.io.FileOutputStream; 
import java.io.IOException; 
import java.util.Date; 

import org.apache.poi.hssf.usermodel.HSSFCell; 
import org.apache.poi.hssf.usermodel.HSSFCellStyle; 
import org.apache.poi.hssf.usermodel.HSSFDataFormat; 
import org.apache.poi.hssf.usermodel.HSSFRow; 
import org.apache.poi.hssf.usermodel.HSSFSheet; 
import org.apache.poi.hssf.usermodel.HSSFWorkbook; 
import org.apache.poi.hssf.util.HSSFColor; 

public class Export2Excel { 

    public static void main(String[] args) { 
     try { 
      //create .xls and create a worksheet. 
      FileOutputStream fos = new FileOutputStream("D:\\data2excel.xls"); 
      HSSFWorkbook workbook = new HSSFWorkbook(); 
      HSSFSheet worksheet = workbook.createSheet("My Worksheet"); 

      //Create ROW-1 
      HSSFRow row1 = worksheet.createRow((short) 0); 

      //Create COL-A from ROW-1 and set data 
      HSSFCell cellA1 = row1.createCell((short) 0); 
      cellA1.setCellValue("Sno"); 
      HSSFCellStyle cellStyle = workbook.createCellStyle(); 
      cellStyle.setFillForegroundColor(HSSFColor.GOLD.index); 
      cellStyle.setFillPattern(HSSFCellStyle.SOLID_FOREGROUND); 
      cellA1.setCellStyle(cellStyle); 

      //Create COL-B from row-1 and set data 
      HSSFCell cellB1 = row1.createCell((short) 1); 
      cellB1.setCellValue("Name"); 
      cellStyle = workbook.createCellStyle(); 
      cellStyle.setFillForegroundColor(HSSFColor.LIGHT_CORNFLOWER_BLUE.index); 
      cellStyle.setFillPattern(HSSFCellStyle.SOLID_FOREGROUND); 
      cellB1.setCellStyle(cellStyle); 

      //Create COL-C from row-1 and set data 
      HSSFCell cellC1 = row1.createCell((short) 2); 
      cellC1.setCellValue(true); 

      //Create COL-D from row-1 and set data 
      HSSFCell cellD1 = row1.createCell((short) 3); 
      cellD1.setCellValue(new Date()); 
      cellStyle = workbook.createCellStyle(); 
      cellStyle.setDataFormat(HSSFDataFormat 
        .getBuiltinFormat("m/d/yy h:mm")); 
      cellD1.setCellStyle(cellStyle); 

      //Save the workbook in .xls file 
      workbook.write(fos); 
      fos.flush(); 
      fos.close(); 
     } catch (FileNotFoundException e) { 
      e.printStackTrace(); 
     } catch (IOException e) { 
      e.printStackTrace(); 
     } 

    } 

} 

UWAGA:Musisz pobrać bibliotekę słoik z linku:http://www.java2s.com/Code/JarDownload/poi/poi-3.9.jar.zip

Powiązane problemy