今天写了个用jxl.jar操作excel文件的java程序

原创 2006年05月30日 12:26:00

主程序:

/*   
 */
 

 import java.awt.* ;
 import java.awt.event.* ;
 import javax.swing.* ;
 import java.io.File;
 import java.io.IOException;
 import jxl.*;
 
 @SuppressWarnings("serial")
public class mainForm extends JFrame
 {
  /**
  *
  */
 // initialize general buttons
  JButton generalBtn = new JButton("begin") ;
  JButton exitBtn = new JButton("exit") ;
  JLabel message = new JLabel( "Press begin to general fomulas." );
  JLabel page = new JLabel( "Input page numbers:" );
  JTextField pageNum = new JTextField(2);
  JLabel col = new JLabel( "Input colume numbers:" );
  JTextField colNum = new JTextField(2);
  JLabel row = new JLabel( "Input row numbers:" );
  JTextField rowNum = new JTextField(2);
  
  public mainForm()
  {
   setLayout( new BorderLayout() ) ;
   
   JPanel panel = new JPanel() ;
   panel.setLayout( new GridLayout(5, 4) ) ;
   panel.add( page );
   panel.add( pageNum );
   panel.add( row );
   panel.add( rowNum );
   panel.add( col );
   panel.add( colNum );
   panel.add( generalBtn ) ;
   panel.add( exitBtn ) ;
   panel.add( message );
   add( panel, BorderLayout.CENTER ) ;
 
      /*
       *  generalBtn and exitBtn use one action listener
       */
      generalBtn.addActionListener( new operListener() ) ;
      exitBtn.addActionListener( new operListener() ) ;
 }
 
 
 /**
  *  operListener:
  *  to define the general button actionlistener
  *  through the button's clicking, system run
  *  different way.
  *
  */
 class operListener implements ActionListener
 {
  public void actionPerformed( ActionEvent evtOp )
  {
   // get the name of each button
   // when it is pressed
   String buttonName = evtOp.getActionCommand() ;
   if( buttonName.equals("begin") )
   {
    // firstly, general three random numbers
    begin();
   }
   if( buttonName.equals("exit") )
   {
    System.exit(0) ;
   }   
  }
 }
   
 public void begin()
 {
  int page = Integer.parseInt( pageNum.getText() );
  int rows = Integer.parseInt( rowNum.getText() );
  int cols = Integer.parseInt( colNum.getText() );
  try
  {
   message.setText( "开始!!" );
   String targetfile = "formula.xls" ;//输出的Excel文件URL
   jxl.write.WritableFont wf = new jxl.write.WritableFont(jxl.write.WritableFont.TIMES, 18, jxl.write.WritableFont.BOLD, true);
   jxl.write.WritableCellFormat wcfF = new jxl.write.WritableCellFormat( wf );
   jxl.write.WritableWorkbook wwb = Workbook.createWorkbook( new File( targetfile ) );//创建可写工作薄
   for( int p = 0; p < page; p ++ )
   {
    jxl.write.WritableSheet ws = wwb.createSheet("fornula" + p, p);
    for( int i = 0; i < rows; i ++ )
    {
     for( int j = 0; j < cols; j ++ )
     {
      formula formula = new formula();
      formula.generalFormula();
      ws.addCell(new jxl.write.Label(j, i, formula.toString(), wcfF));
     }
    }
   }
   wwb.write();
   wwb.close();
   message.setText( "完成" );
  }catch( IOException ioe )
  {
   message.setText( "写入文件异常!!" );
  }catch(jxl.write.biff.RowsExceededException ree)
  {
   message.setText( "写入文件异常!!" );
  }catch( jxl.write.WriteException we )
  {
   message.setText( "写入文件异常!!" );
  }
 }

 public static void main( String[] args )
 {
  mainForm form = new mainForm() ;
  form.setSize( 400, 200 ) ;
  form.setVisible(true) ;
  form.setResizable(false) ; // the users can not modify the window
  form.setDefaultCloseOperation( JFrame.EXIT_ON_CLOSE ) ;
 }
 }

子程序

/*
 * general one formula, like num1 + num2 + num3 = result   
 */
 

 
 public class formula
 {  
  // defined three radome numbers
 private int num1, num2, num3;
 // record the formula string
 private String resultRec;
 private long result;
 
  public formula()
  {
   num1 = (int)(Math.random()*1000);
  num2 = (int)(Math.random()*1000);
  num3 = (int)(Math.random()*1000);
  resultRec = null;
 }
 
 // when geeral formula have some errors, use this function regeneral formula
 public void reGeneralNumbers()
 {
   num1 = (int)(Math.random()*1000 + 1);
  num2 = (int)(Math.random()*1000 + 1);
  num3 = (int)(Math.random()*1000 + 1);
  resultRec = null;
  generalFormula();  
 }
  
 public void generalFormula()
 {
  int operation = (int)(Math.random()*15) + 1;
  
  switch( operation )
  {
   // num1 + num2 + num3
   case 1:
       result = num1 + num2 + num3;
    resultRec = num1 + "+" + num2 + "+" + num3 + "=" + "  ";
    break;
   // num1 + num2 - num3
   case 2:
    result = num1 + num2 - num3;
    resultRec = num1 + "+" + num2 + "-" + num3 + "=" + "  ";
    break;
   // num1 + num2 * num3
   case 3:
    num2 = formateNum( num2 );
    num3 = formateNum( num3 );
    result = num1 + num2 * num3;
    resultRec = num1 + "+" + num2 + "*" + num3 + "=" + "  ";
    break;
   // num1 + num2 / num3
   case 4: 
    if( judgeDiv(num2,num3) )
    { 
     result = num1 + num2 / num3;
     resultRec = num1 + "+" + num2 + "/" + num3 + "=" + "  ";
    }
    else
     reGeneralNumbers();
    break;
   // num1 - num2 + num3
   case 5:
    result = num1 - num2 + num3;
    resultRec = num1 + "-" + num2 + "+" + num3 + "=" + "  ";
    break;
   // num1 - num2 - num3
   case 6:
    result = num1 - num2 - num3;
    resultRec = num1 + "-" + num2 + "-" + num3 + "=" + "  ";
    break;
   // num1 - num2 * num3
   case 7:
    num3 = formateNum( num3 );
    num2 = formateNum( num2 );
    result = num1 - num2 * num3;
    resultRec = num1 + "-" + num2 + "*" + num3 + "=" + "  ";
    break;
   // num1 - num2 / num3
   case 8:
    if( judgeDiv(num2,num3) )
    { 
     result = num1 - num2 / num3;
     resultRec = num1 + "-" + num2 + "/" + num3 + "=" + "  ";
    }
    else
     reGeneralNumbers();
    break;
   // num1 * num2 + num3
   case 9: 
    num1 = formateNum( num1 );
    num2 = formateNum( num2 );
    result = num1 * num2 + num3;
    resultRec = num1 + "*" + num2 + "+" + num3 + "=" + "  ";
    break;
   // num1 * num2 - num3
   case 10:
    num1 = formateNum( num1 );
    num2 = formateNum( num2 );
    result = num1 * num2 - num3;
    resultRec = num1 + "*" + num2 + "-" + num3 + "=" + "  ";
    break;
   // num1 * num2 * num3
   case 11:
    num1 = formateNum( num1 );
    num2 = formateNum( num2 );
    num3 = formateNum( num3 );
    result = num1 * num2 * num3;
    resultRec = num1 + "*" + num2 + "*" + num3 + "=" + "  ";
    break;
   // num1 * num2 / num3
   case 12:
    num1 = formateNum( num1 );
    num2 = formateNum( num2 );
    int temp = num1 * num2;
    if( judgeDiv( temp, num3 ) )
    { 
     result = temp / num3;
     resultRec = num1 + "*" + num2 + "/" + num3 + "=" + "  ";
    }
    else
     reGeneralNumbers(); 
    break;
   // num1 / num2 + num3
   case 13:
    if( judgeDiv(num1,num2) )
    {
     result = num1 / num2 + num3;
     resultRec = num1 + "/" + num2 + "+" + num3 + "=" + "  ";
    }
    else
     reGeneralNumbers();
    break;
   // num1 / num2 - num3
   case 14:
    if( judgeDiv(num1,num2) )
    {
     result = num1 / num2 - num3;
     resultRec = num1 + "/" + num2 + "-" + num3 + "=" + "  ";
    }
    else
     reGeneralNumbers();
    break;
   // NUM1 / num2 * num3
   case 15:
    if( judgeDiv(num1,num2) )
    {
     temp = formateNum( num1/num2 );
     num3 = formateNum( num3 );
     result = temp * num3;
     resultRec = num1 + "/" + num2 + "*" + num3 + "=" + "  ";
    }
    else
     reGeneralNumbers();
    break;
   // num1 / num2 / num3
   case 16:
    if( judgeDiv(num1,num2) )
    {
     temp = num1 / num2;
     if( judgeDiv(temp,num3) )
     { 
      result = temp / num3;
      resultRec = num1 + "/" + num2 + "/" + num3 + "=" + "  ";
     }
     else
      reGeneralNumbers();
    }
    else
     reGeneralNumbers();
    break;    
  }
  if( result > 10000 || result < 0 )
  {
   reGeneralNumbers();
  }
 }
 
 public int formateNum( int a )
 {
  if( a > 10 )
  {
   if( a > 300 )
    return (a /30 * 10);
   return ( a - (a%10) );
  }
  else
   return a;
 }
 
 public  boolean judgeDiv(int a, int b)
 {
  if( b != 0 )
  {
   if( a%b == 0 && a/b != 0)
       return true;
   else
    return false;
  }
  else
  {
   return false;
  }
 }
 
 public String toString()
 {
  return resultRec;
 }
 
 public String resultString()
 {
  return (result + " ");
 }
 }

JAVA使用jxl.jar对excel表格进行操作处理

使用jxl.jar对excel表格进行操作处理对于写入的介绍: buffer.append(excelName); if (!excelName.contains(...
  • tangzhide
  • tangzhide
  • 2016年10月08日 19:50
  • 1300

jxl.jar包简介---用java操作读写excel文件

 注册┆登录┆发表文章 jxl.jar包简介---用java操作读写excel文件  2007-07-19 14:03:51  大中小 标签: jxl.jar java excel jxl     j...
  • hsrong
  • hsrong
  • 2007年07月26日 11:15
  • 9274

Java 使用jxl.jar 导入导出Excel数据

开发程序时需要用到 jxl.jar 下载地址:http://nchc.dl.sourceforge.net/sourceforge/jexcelapi/jexcelapi_2_6_6.zip下载后将z...
  • linyiteng1220
  • linyiteng1220
  • 2008年04月17日 20:22
  • 10756

java通过jxl.jar实现excel导入导出

import java.io.File; import java.io.FileInputStream; import java.io.FileNotFoundException; import ja...
  • mixiuali
  • mixiuali
  • 2013年04月02日 19:35
  • 2380

利用jxl.jar读写excel文件

利用jxl.jar读写excel文件这几天一直没更新笔记,就是因为卡在这里了,不得不说,底子太薄了,不多说进入正题 需要添加的jar包:jxl.jarpackage plansinterface i...
  • story_cheng
  • story_cheng
  • 2015年04月15日 00:00
  • 1318

使用 jxl.jar 架包生成 Excel文件

package com.util; import java.io.File; import java.io.IOException; import java.io.OutputStream; imp...
  • yhzh_311200
  • yhzh_311200
  • 2016年04月26日 13:39
  • 1744

2016.7.23 通过Java创建excel jxl.jar

通过Java创建excel,首先要导入jxl.jar的包 build path 之后就是通过创建Java类来操作创建excel了。 创建excel: 简单粗暴,直接上代码: //创建建...
  • Rbmonster
  • Rbmonster
  • 2016年08月19日 16:32
  • 160

java excel api(jxl.jar)库基础操作学习

读取excel JExcelApi支持从文件和输入流读取excel表格。要想读取excel第一步你应该创建一个Workbook:import java.io.File; import java.u...
  • Cloud_Huan
  • Cloud_Huan
  • 2017年03月11日 14:11
  • 871

使用JAVA加jxl.jar操作EXECL

//程序说明: 要导入jxl.jar到Classpath中。import jxl.*;import java.io.*;import jxl.write.*;/*** java读取Excel表格,拷贴...
  • fenglibing
  • fenglibing
  • 2007年07月23日 20:07
  • 7488

java如何生成excel报表--jxl.jar操作

文章参考:http://www.cnblogs.com/mingforyou/archive/2013/08/26/3282922.html JAVA EXCEL API:是一开放源码项目,通过它...
  • qingfengmuzhu1993
  • qingfengmuzhu1993
  • 2017年02月25日 11:38
  • 834
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:今天写了个用jxl.jar操作excel文件的java程序
举报原因:
原因补充:

(最多只允许输入30个字)