Java对Excel表格的操作

import java.io.File;//引入类
import java.io.IOException;
import java.util.Scanner;
import jxl.Cell;
import jxl.Sheet;
import jxl.Workbook;
import jxl.format.UnderlineStyle;

import jxl.write.DateFormat;
import jxl.write.DateTime;
import jxl.write.Label;
import jxl.write.NumberFormat;
import jxl.write.WritableCellFormat;
import jxl.write.WritableFont;

import jxl.write.WritableSheet;
import jxl.write.WritableWorkbook;

public class TextOperatorExcel {// 操作Excel文件的类

/**
* 生成一个Excel文件
*/
public static void writeExcel(String fileName) {
WritableWorkbook wwb = null;
try {
//创建一个可写入的工作薄(Workbook)对象
wwb = Workbook.createWorkbook(new File(fileName));
} catch (IOException e) {// 捕获流异常
e.printStackTrace();
}
if (wwb != null) {
// 创建一个可写入的工作表
// Workbook的createSheet方法有两个参数,第一个是工作表的名称,第二个是工作表在工作薄中的位置
WritableSheet ws = wwb.createSheet("sheet1", 0);
for (int i = 0; i < 10; i++) {// 循环添加单元格
for (int j = 0; j < 5; j++) {
Label labelC = new Label(j, i, "这是第" + (i + 1) + "行,第"
+ (j + 1) + "列");
try {
ws.addCell(labelC);// 将生成的单元格添加到工作表中
} catch (Exception e) {// 捕获异常
e.printStackTrace();
}

}
}
try {
wwb.write();// 从内存中写入文件中
wwb.close();// 从内存中写入文件中
} catch (Exception e) {// 捕获异常
e.printStackTrace();
}
}
System.out.println("生成一个Excel文件:"+fileName+"成功!");
}

/**
* 将内容写入
* @param fileName
* @throws Exception
*/
public static void writeContentToExcel(String fileName) throws Exception{
File tempFile=new File(fileName);
WritableWorkbook workbook = Workbook.createWorkbook(tempFile);
WritableSheet sheet = workbook.createSheet("TestCreateExcel", 0);
//一些临时变量,用于写到excel中
Label l=null;
jxl.write.Number n=null;
jxl.write.DateTime d=null;

//预定义的一些字体和格式,同一个Excel中最好不要有太多格式 字形 大小 加粗 倾斜 下划线 颜色
WritableFont headerFont = new WritableFont(WritableFont.ARIAL, 12, WritableFont.BOLD, false, UnderlineStyle.NO_UNDERLINE, jxl.format.Colour.BLUE);
WritableCellFormat headerFormat = new WritableCellFormat (headerFont);

WritableFont titleFont = new WritableFont(WritableFont.ARIAL, 10, WritableFont.NO_BOLD, false, UnderlineStyle.NO_UNDERLINE, jxl.format.Colour.RED);
WritableCellFormat titleFormat = new WritableCellFormat (titleFont);

WritableFont detFont = new WritableFont(WritableFont.ARIAL, 10, WritableFont.NO_BOLD, false, UnderlineStyle.NO_UNDERLINE, jxl.format.Colour.BLACK);
WritableCellFormat detFormat = new WritableCellFormat (detFont);

NumberFormat nf=new NumberFormat("0.00000"); //用于Number的格式
WritableCellFormat priceFormat = new WritableCellFormat (detFont, nf);

DateFormat df=new DateFormat("yyyy-MM-dd");//用于日期的
WritableCellFormat dateFormat = new WritableCellFormat (detFont, df);

l=new Label(0, 0, "用于测试的Excel文件", headerFormat);//创建一些单元格,再加到sheet中
sheet.addCell(l);
//添加标题
int column=0;
l=new Label(column++, 2, "标题", titleFormat);
sheet.addCell(l);
l=new Label(column++, 2, "日期", titleFormat);
sheet.addCell(l);
l=new Label(column++, 2, "货币", titleFormat);
sheet.addCell(l);
l=new Label(column++, 2, "价格", titleFormat);
sheet.addCell(l);
//添加内容
int i=0;
column=0;
l=new Label(column++, i+3, "标题 "+i, detFormat);
sheet.addCell(l);
d=new DateTime(column++, i+3, new java.util.Date(), dateFormat);
sheet.addCell(d);
l=new Label(column++, i+3, "CNY", detFormat);
sheet.addCell(l);
n=new jxl.write.Number(column++, i+3, 5.678, priceFormat);
sheet.addCell(n);
i++;
column=0;
l=new Label(column++, i+3, "标题 "+i, detFormat);
sheet.addCell(l);
d=new DateTime(column++, i+3, new java.util.Date(), dateFormat);
sheet.addCell(d);
l=new Label(column++, i+3, "SGD", detFormat);
sheet.addCell(l);
n=new jxl.write.Number(column++, i+3, 98832, priceFormat);
sheet.addCell(n);
//设置列的宽度
column=0;
sheet.setColumnView(column++, 20);
sheet.setColumnView(column++, 20);
sheet.setColumnView(column++, 10);
sheet.setColumnView(column++, 20);
workbook.write();
workbook.close();
System.out.println("内容写入"+fileName+"成功");
}

public static void readExcelInfo(String fileName)
throws Exception {// 获得Excel文件多少行多少列
Workbook book = Workbook.getWorkbook(new File(fileName));// 构造Workbook(工作薄)对象
Sheet sheet = book.getSheet(0);
// 得到第一列第一行的单元格// 获得第一个工作表对象
int columnum = sheet.getColumns(); // 得到列数
int rownum = sheet.getRows(); // 得到行数
System.out.println(columnum);
System.out.println(rownum);
for (int i = 0; i < rownum; i++) // 循环进行读写
{
for (int j = 0; j < columnum; j++) {
Cell cell1 = sheet.getCell(j, i);
String result = cell1.getContents();
System.out.print(result);
System.out.print(" \t ");
}
System.out.println();
}
book.close();//关闭(工作薄)对象
}

public static void main(String[] args) {// java程序主入口处
try {
System.out.println("1.创建Excel文件,输入Excel文件名称(包括路径和后缀)");
Scanner scan = new Scanner(System.in);
final String fileName = scan.next();//获得键盘值
writeExcel(fileName);//调用生成Excel方法

System.out.println("2.将内容写入Excel文件");
writeContentToExcel(fileName);//调用将内容写入Excel方法

System.out.println("3.读取Excel文件");
readExcelInfo(fileName);
} catch (Exception e) {//捕获异常
e.printStackTrace();
}
}
}

时间: 2024-10-12 00:08:45

Java对Excel表格的操作的相关文章

Java -&gt; 把Excel表格中的数据写入数据库与从数据库中读出到本地 (未完善)

写入: private void insertFile(HttpServletRequest request, HttpServletResponse response) throws IOException { String path_member = request.getParameter("path_member"); List list = this.insert("f:/tmp001.xls", "gs_sale_members");

java生成excel表格和pdf并实现下载弹出框

今天在pdf和excel中都实现了在浏览器弹出下载框 将之前在网上查找的生成excel表格代码稍微修改下: public class CreateSimpleExcelToDisk { /** * @功能:手工构建一个简单格式的Excel */ private static List<News> getNews() throws Exception { List<News> data = new ArrayList<News>(); NewsDao dao = new

Java读取excel表格

Java读取excel表格 一般都是用poi技术去读取excel表格的,但是这个技术又是什么呢 什么是Apache POI? Apache POI是一种流行的API,它允许程序员使用Java程序创建,修改和显示MS Office文件.这由Apache软件基金会开发使用Java分布式设计或修改Microsoft Office文件的开源库.它包含类和方法对用户输入数据或文件到MS Office文档进行解码. Apache POI Apache POI是Apache软件基金会提供的100%开源库.大多

java对excel表格的上传和下载处理

Excel表格文件的上传和下载,java中涉及到文件肯定会有io流的知识. 而excel文件就要涉及到poi技术,而excel的版本包括:2003-2007和2010两个版本, 即excel的后缀名为:xls和xlsx. 这里我是按照正规的项目流程做的案例,所以可能会比网上的一些Demo复杂一些.不过文件的上传和下载基本都是一套固定的流程,只是每个人的实现方式不太相同. 数据库我用的是MySql. 下面是我的项目目录: 按照正常的项目做了分层处理,文件上传的业务我放到了service处理,而文件

Java导出Excel表格

利用Java将数据库中的数据导出为excel表格,导出完后可以下载,并压缩成zip格式 使用poi导出excel表,可以设置列宽.单元格合并居中.背景色设置等. 主要代码如下: 前端js代码 1 <body> 2 <button onclick="test()">导出 excel表</button> 3 4 <a id="download" href="#"> <span id="s

Java生成Excel表格的代码

1. 我们先定义这三个类 DataItem类,表示一个单元格内的数字 package com.tntxia.pem.entity; public class DataItem { private String value; private String dataType; private String cellStyle=""; public String getCellStyle() { return cellStyle; } public void setCellStyle(Str

JAVA把excel表格的数据导入到数据库

package com.insertdatebase; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.IOException; import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.Date; import java.util.Locale; import o

Python学习—对excel表格的操作

安装对excel操作的模块:openpyxl 1.excel中的基本定义 工作簿(workbook):整个excel表哥文件称为一个工作簿 工作表(sheet):一个工作簿中有多个工作表 活动表(active sheet):保存文件时候停留在那个表,那个表就被称为活动表 行(row): 1,2,3,4,5,6........ 列(column): A,B,C,D...... 单元格(cell): B1,C1,C5...... 例子1 import openpyxl #打开一个excel文档 wb

去哪网实习总结:java读写excel表格(JavaWeb)

本来是以做数据挖掘的目的进去哪网的,结构却成了系统开发... 不过还是比较认真的做了三个月,老师很认同我的工作态度和成果... 实习马上就要结束了,总结一下几点之前没有注意过的变成习惯和问题,分享给大家. 同时打个广告:去哪网内审部招JavaWeb开发实习生,时间非常自由,每周一天.周六周日甚至都可以,时间充裕的小伙伴给我留言啊,挣个零花钱,还能长点经验....(保研的.想工作的大四狗最合适不过了...) 需哟的包(java操作excel包 jxl.jar):http://download.cs