操作EXCEL

package package1;

//public class ExcelOperation {
//
// /**
//  * @param args
//  */
// public static void main(String[] args) {
//  // TODO Auto-generated method stub
//
// }
//
//}

import java.io.File;
import java.io.IOException;
import java.util.*;
import jxl.*;
import jxl.write.*;

/**
 * <p>
 * Title: 操作EXCEL文件
 * </p>
 * <p>
 * Description: 本实例演示使用jxl包实现对excel文件的操作
 * </p>
 * <p>
 * Copyright: Copyright (c) 2003
 * </p>
 * <p>
 * Filename: myExcel.java
 * </p>
 *
 *
 * @version 1.0
 */
public class ExcelOperation {
 Workbook workbook;
 Sheet sheet;

 /**
  *<br>
  * 方法说明:写入文件操作 <br>
  * 输入参数: <br>
  * 返回类型:
  */
 public void write(String fileName,int column,int row ,WritableWorkbook workbook) { //fileName="myfile.xls" column=1,row=1
  try {
   // 创建一个可写入的excel文件对象
//   WritableWorkbook workbook = Workbook.createWorkbook(new File(
//     fileName));
   // 使用第一张工作表,将其命名为“午餐记录”
//   WritableSheet sheet = workbook.createSheet("午餐记录", 0);
   WritableSheet sheet = workbook.getSheet(0);
   // 表头
   Label label0 = new Label(0, 0, "时间");
   sheet.addCell(label0);
//   Label label1 = new Label(1, 0, "姓名");
//   sheet.addCell(label1);
//   Label label2 = new Label(2, 0, "午餐标准");
//   sheet.addCell(label2);
//   Label label3 = new Label(3, 0, "实际费用");
//   sheet.addCell(label3);
//   // 格式化日期
//   jxl.write.DateFormat df = new jxl.write.DateFormat(
//     "yyyy-dd-MM hh:mm:ss");
//   jxl.write.WritableCellFormat wcfDF = new jxl.write.WritableCellFormat(
//     df);
//   jxl.write.DateTime labelDTF = new jxl.write.DateTime(0, 1,
//     new java.util.Date(), wcfDF);
//   sheet.addCell(labelDTF);
   // 普通字符
   Label labelCFC = new Label(column, row, "riverwind");
   sheet.addCell(labelCFC);
//   // 格式化数字
//   jxl.write.NumberFormat nf = new jxl.write.NumberFormat("#.##");
//   WritableCellFormat wcfN = new WritableCellFormat(nf);
//   jxl.write.Number labelNF = new jxl.write.Number(2, 1, 13.1415926,
//     wcfN);
//   sheet.addCell(labelNF);
//
//   jxl.write.Number labelNNF = new jxl.write.Number(3, 1, 10.50001,
//     wcfN);
//   sheet.addCell(labelNNF);
   // 关闭对象,释放资源
   workbook.write();
   workbook.close();

  } catch (Exception e) {
   System.out.println(e);
  }
 }

 /**
  *<br>
  * 方法说明:读取excel文件一行数据 <br>
  * 输入参数:int row指定的行数 <br>
  * 返回类型:String〔〕结果数组
  */
 public String[] readLine(int row) {
  try {
   // 获取数据表列数
   int colnum = sheet.getColumns();
  
   String[] rest = new String[colnum];
   for (int i = 0; i < colnum; i++) {
    String sTemp = read(i, row);
    if (sTemp != null)
     rest[i] = sTemp;
   }
   return rest;
  } catch (Exception e) {
   System.out.println("readLine err:" + e);
   workbook.close();
   return null;
  }
 }

 /**
  *<br>
  * 方法说明:读取excel的指定单元数据 <br>
  * 输入参数: <br>
  * 返回类型:
  */
 public String read(int col, int row) {
  try {
   // 获得单元数据
   Cell a2 = sheet.getCell(col, row);
   String rest = a2.getContents();
   return rest;
  } catch (Exception e) {
   System.out.println("read err:" + e);
   workbook.close();
   return null;
  }
 }

 /**
  *<br>
  * 方法说明:主方法,演示程序用 <br>
  * 输入参数: <br>
  * 返回类型:
  */
 public static void main(String[] arges)
 {
  String fileName = "myfile_result.xls";
  WritableWorkbook workbook = null;
  try {
   workbook = Workbook.createWorkbook(new File(
     fileName));
  } catch (IOException e1) {
   // TODO Auto-generated catch block
   e1.printStackTrace();
  }
  try {
   ExcelOperation me = new ExcelOperation();

  // me.write();
   // 生成一个可读取的excel文件对象
   me.workbook = Workbook.getWorkbook(new File("myfile.xls"));
   // 使用第一个工作表
   me.sheet = me.workbook.getSheet(0);
   int global_j =0 ;
   // 读一行记录,并显示出来
   for(int i = 0 ,n =me.sheet.getRows(); i<n; i++)
   {    
   String[] ssTemp = me.readLine(i);
   for (int j = 0; j < ssTemp.length; j++)
   {
    System.out.println(ssTemp[i]);
    global_j = j;
   }
   int column =global_j;
   int row =i ;
   // 写入数据
   me.write("myfile.xls",column,row,workbook );
   }
   me.workbook.close();
  } catch (Exception e) {
   System.out.println(e);
  }
 }

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值