H.Wong

P.

导航

java:利用jexcelapi 创建Excel

the project need create the Excel files.i try to use MS Lib in .net but it cost  a lot of  menory.so i get the JexcelApi and POI to create excel file,it  is great.

this page is keep code,nothing else,:>

this is the process Class:

package jExcel;
import jxl.*;
import jxl.write.*;
import jxl.write.biff.RowsExceededException;
import java.io.*;
import java.util.*;
public class Export {

    
/**
     * Data Items
     
*/
    
private static List<String[]> items = new ArrayList<String[]>();

    
/**
     * Generate Items
     * 
     * 
@param Address
     * 
@param Zip
     
*/
    
public static void GenerateItem(String Address, String Zip) {
        items.add(
new String[]{Address,Zip});
    }

    
/**
     * Export To Excel
     * 
     * 
@param filepath
     * 
@throws IOException
     * 
@throws RowsExceededException
     * 
@throws WriteException
     
*/
    
public static void ExportToExcel(String filepath) throws IOException,
            RowsExceededException, WriteException {
        File file 
= new File(filepath);
        
//check file exsist
        if (file.exists()) {

        } 
else {
            file.createNewFile();
        }
        
        
//create create a workbook 
        WritableWorkbook book = Workbook.createWorkbook(file);
        
//create a sheet 
        WritableSheet sheet = book.createSheet("sheet1"0);
        
//init a new label
        Label label = null;
        
        
/**
         * create head line
         
*/
        
//create a new label
        label = new Label(00"Address");
        
//add label into sheet
        sheet.addCell(label);
        
//TODO:you can add cell format here like:WritableCellFormat
        label = new Label(10"Zip");
        sheet.addCell(label);
        
//add item cells
        for (int i = 0; i < items.size(); i++) {
            String[] temp 
= items.get(i);
            
for (int s = 0; s < temp.length; s++) {
                label 
= new Label(s,i + 1, temp[s]);
                sheet.addCell(label);
            }
        }
        
//begin to write excel to disk
        book.write();
        
//close this steam
        book.close();
    }
}

 

this is the main function class:

 

import java.io.*;
import java.util.*;

import jxl.write.WriteException;
import jxl.write.biff.RowsExceededException;

import jExcel.*;

public class ExApplication {

    
static String s = "";
    
static BufferedReader input = new BufferedReader(new InputStreamReader(
            System.in));

    
static String getFilename() {
        String temp 
= "";
        File file 
= new File(".");
        temp 
= file.getAbsolutePath().substring(0,
                file.getAbsolutePath().lastIndexOf(
"\\"))
                
+ "\\";
        Date day 
= new Date();
        temp 
+= day.toString().replace(" """).replace(":"""+ ".xls";
        
return temp;
    }

    
/**
     * 
@param args
     * 
@throws IOException
     * 
@throws WriteException
     * 
@throws RowsExceededException
     
*/
    
public static void main(String[] args) throws IOException,
            RowsExceededException, WriteException {
        System.out.println(
"Please input Address,Zip");
        
while (!s.toLowerCase().equals("done")) {
            
if (s.toLowerCase().indexOf(","> -1) {
                String[] temp 
= s.toLowerCase().split(",");
                
if (temp.length == 2) {
                    Export.GenerateItem(temp[
0], temp[1]);
                }
            }
            s 
= input.readLine();
        }
        
if (s.toLowerCase().equals("done")) {
            
try {
                String name 
= getFilename();
                Export.ExportToExcel(name);
                System.out.println(
"Create Complete File :" + name);

            } 
catch (Exception ex) {
                ex.printStackTrace();
            }
        }

    }

}

posted on 2008-09-17 16:14  H.Wong  阅读(440)  评论(0编辑  收藏  举报