简单用Java Excel 创建和读取 Excel文件
2007-12-19 09:32
435 查看
package fxp.util.excel;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import jxl.Cell;
import jxl.Sheet;
import jxl.Workbook;
import jxl.write.Label;
import jxl.write.WritableSheet;
import jxl.write.WritableWorkbook;
public class ExcelOperate
{
/**
* 创建Excel,
* @param fileName 文件名.同名将被覆盖
* @param sheetName 第一页名字
* @param title 数组,代表标题
* @param content 二维数组,代表每一格内容
* /
public static void createExcel(String fileName,String sheetName,String[] title,String[][] content)throws Exception
{
boolean flag =false;
WritableWorkbook book = null;//可写的表
WritableSheet ws = null;//表中一页
File file = new File(fileName);
if(file.exists()) //如果文件存在,创建临时文件
{
file=new File("xsl_file_temp.xls");
flag=true;
}
book = Workbook.createWorkbook(file);//根据文件名创建表
ws = book.createSheet(sheetName, 0);//根据页名创建一页,0代表第一页
for(int i=0;i<title.length;i++)//填加标题行
{
Label label = new Label(i, 0, title[i]);//Label代表一格.第一个参数代表纵列数,第二个参数代表横行数,第三个代表内容
ws.addCell(label);
}
for(int i=0;i<content.length;i++)//填充单元格内容
{
for(int j=0;j<content[i].length;j++)
{
Label label = new Label(j, i+1, content[i][j]);
ws.addCell(label);
}
}
book.write();
book.close();
if(flag)//覆盖同名文件
{
File oldFile=new File(fileName);
replaceFile(oldFile,file);
file.delete();
}
}
/**
* 用新文件替换旧文件
* @param oldFile 将被替换
* @param newFile 新文件
* @throws Exception
*/
public static void replaceFile(File oldFile,File newFile)throws Exception
{
FileInputStream fis=null;
FileOutputStream fos=null;
try
{
fis=new FileInputStream(newFile);
fos=new FileOutputStream(oldFile);
byte[] b=new byte[fis.available()];
fis.read(b);
fos.write(b);
}
finally
{
fis.close();
fos.close();
}
}
public static void readExcelSheet(Sheet sheet)
{
for(int i=0;i<sheet.getRows();i++)
{
for(int j=0;j<sheet.getColumns();j++)
{
Cell cell=sheet.getCell(j, i);//j列,i行
System.out.print(cell.getContents()+" | ");
}
System.out.println("");
}
}
public static void readExcel(String fileName)throws Exception
{
File file=new File(fileName);
Workbook book=Workbook.getWorkbook(file);
Sheet[] sheets=book.getSheets();
for(int i=0;i<sheets.length;i++)
{
readExcelSheet(sheets[i]);
}
book.close();
}
public static void main(String args[])throws Exception
{
String file="c://temp//test.xls";
String sheetName="我的第一页";
String[] title=new String[]{"你","我","他"};
String[][] content=new String[3][3];
for(int i=0;i<content.length;i++)
{
for(int j=0;j<content[i].length;j++)
{
content[i][j]="测试["+i+"]"+"["+j+"]";
}
}
createExcel(file,sheetName,title,content);
readExcel(file);
}
}
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import jxl.Cell;
import jxl.Sheet;
import jxl.Workbook;
import jxl.write.Label;
import jxl.write.WritableSheet;
import jxl.write.WritableWorkbook;
public class ExcelOperate
{
/**
* 创建Excel,
* @param fileName 文件名.同名将被覆盖
* @param sheetName 第一页名字
* @param title 数组,代表标题
* @param content 二维数组,代表每一格内容
* /
public static void createExcel(String fileName,String sheetName,String[] title,String[][] content)throws Exception
{
boolean flag =false;
WritableWorkbook book = null;//可写的表
WritableSheet ws = null;//表中一页
File file = new File(fileName);
if(file.exists()) //如果文件存在,创建临时文件
{
file=new File("xsl_file_temp.xls");
flag=true;
}
book = Workbook.createWorkbook(file);//根据文件名创建表
ws = book.createSheet(sheetName, 0);//根据页名创建一页,0代表第一页
for(int i=0;i<title.length;i++)//填加标题行
{
Label label = new Label(i, 0, title[i]);//Label代表一格.第一个参数代表纵列数,第二个参数代表横行数,第三个代表内容
ws.addCell(label);
}
for(int i=0;i<content.length;i++)//填充单元格内容
{
for(int j=0;j<content[i].length;j++)
{
Label label = new Label(j, i+1, content[i][j]);
ws.addCell(label);
}
}
book.write();
book.close();
if(flag)//覆盖同名文件
{
File oldFile=new File(fileName);
replaceFile(oldFile,file);
file.delete();
}
}
/**
* 用新文件替换旧文件
* @param oldFile 将被替换
* @param newFile 新文件
* @throws Exception
*/
public static void replaceFile(File oldFile,File newFile)throws Exception
{
FileInputStream fis=null;
FileOutputStream fos=null;
try
{
fis=new FileInputStream(newFile);
fos=new FileOutputStream(oldFile);
byte[] b=new byte[fis.available()];
fis.read(b);
fos.write(b);
}
finally
{
fis.close();
fos.close();
}
}
public static void readExcelSheet(Sheet sheet)
{
for(int i=0;i<sheet.getRows();i++)
{
for(int j=0;j<sheet.getColumns();j++)
{
Cell cell=sheet.getCell(j, i);//j列,i行
System.out.print(cell.getContents()+" | ");
}
System.out.println("");
}
}
public static void readExcel(String fileName)throws Exception
{
File file=new File(fileName);
Workbook book=Workbook.getWorkbook(file);
Sheet[] sheets=book.getSheets();
for(int i=0;i<sheets.length;i++)
{
readExcelSheet(sheets[i]);
}
book.close();
}
public static void main(String args[])throws Exception
{
String file="c://temp//test.xls";
String sheetName="我的第一页";
String[] title=new String[]{"你","我","他"};
String[][] content=new String[3][3];
for(int i=0;i<content.length;i++)
{
for(int j=0;j<content[i].length;j++)
{
content[i][j]="测试["+i+"]"+"["+j+"]";
}
}
createExcel(file,sheetName,title,content);
readExcel(file);
}
}
相关文章推荐
- 利用Java 创建和读取Excel文档
- 利用Java 创建和读取Excel文档
- java读取excel文件并写入另一个excel文件
- 如何创建和读取excel文件-poi的简单使用(一)
- 综观java读取和创建excel方法
- java实现对Excel文件进行创建、读取、修改等操作
- java利用jxl.jar创建、读取EXCEL文件
- 简单的java读取excel表中的数据代码
- 【Java】读取excel简单实例
- JAVA使用POI读取EXCEL文件的简单model
- java处理Excel文件---excel文件的创建,删除,写入,读取
- java利用注解实现简单的excel数据读取
- 利用Java 创建和读取Excel文档
- JAVA用POI读取和创建2003和2007版本Excel完美示例
- 简单 的java 读取 excel
- JAVA用POI读取EXCEL的例子 超简单
- java 创建一个简单的excel 表代码
- 利用Java 创建和读取Excel文档
- java从Excel文件读取数据到数据库和从读取数据库数据写入Excel
- 利用Java 创建和读取Excel文档