poi导入word到mysql_jxl读写excel, poi读写excel,word, 读取Excel数据到MySQL

对比:

(1) poi使用userModel模式,上手很容易。代码写起来很复杂。而且公用的地方很少。导致每次读写excel都需要重新编写。

(2) EasyExcel使用SAX模式使得easyexcel可以节省内存。而且easyexcel解决了内存泄漏问题。如果想了解SAX模式开发那成本需要3~5天学习。基于注解的方式将以前POI的复杂的代码进模块抽离。我们基本上的需求只需要在excelproperty注解中就可以解决。 解决了内存泄漏的问题。easyexcel是POI系列产品的最佳之选。

com.alibaba

easyexcel

2.1.0-beta4

(3) jxl实际和POI差不多。两者的理念一样,都是通过表格对象--》单元页--》行--》列--》单元格的逻辑去操作读写的。基本上常用的功能都是提供方法的。不同的是方法的传参顺序的不同。两者在性能上的比较jxl性能更佳。

(4) jxls和jxl一点关系都没有。两者的使用方法的逻辑也是天差万别的。jxls更佳侧重的是excel本身的模板的编写。jxls是通过模板在注入数据进行渲染的一个框架。他的最大的优点就是代码量很少。jxls实现导出的很简单。但是实现读取数据这里就很不好办了。

(5) easypoi和easyexcel很相似。两者都是通过注解的方式实现excel表头与实体对象的一种映射。一个@Excel 另一个是@ExcelProperty . 相对easyexcel,easypoi功能就相对单一点。 两者都可以在自身的功能不足的情况下,通过POI的功能实现自定义功能

1. java中的poi技术读取Excel数据,然后保存到MySQL数据中。

2. jxl读写excel

你也可以在 :

项目结构:

0df4e3d44f0108a08c5579130b927398.png

Excel中的测试数据:

81d88219241f69cbf4d362f3b1edddf4.png

数据库结构:

fa28d3aa89bbd1645c980357dd30e5f1.png

对应的SQL:

48304ba5e6f9fe08f3fa1abda7d326ab.png

48304ba5e6f9fe08f3fa1abda7d326ab.png

1 CREATE TABLE `student_info` (

2 `id` int(11) NOT NULL AUTO_INCREMENT,

3 `no` varchar(20) DEFAULT NULL,

4 `name` varchar(20) DEFAULT NULL,

5 `age` varchar(10) DEFAULT NULL,

6 `score` float DEFAULT '0',

7 PRIMARY KEY (`id`)

8 ) ENGINE=InnoDB DEFAULT CHARSET=utf8;

48304ba5e6f9fe08f3fa1abda7d326ab.png

48304ba5e6f9fe08f3fa1abda7d326ab.png

插入数据成功:

358ebcbfd71bb1cf3a06119967aaf3ca.png

如果重复数据,则丢掉:

b1cf399aeee391af2521f1fe9d7764eb.png

=============================================

源码部分:

=============================================

/ExcelTest/src/com/b510/client/Client.java

48304ba5e6f9fe08f3fa1abda7d326ab.png

48304ba5e6f9fe08f3fa1abda7d326ab.png

1 /**

2 *

3 */

4 package com.b510.client;

5

6 import java.io.IOException;

7 import java.sql.SQLException;

8

9 import com.b510.excel.SaveData2DB;

10

11 /**

12 * @author Hongten

13 * @created 2014-5-18

14 */

15 public class Client {

16

17 public static void main(String[] args) throws IOException, SQLException {

18 SaveData2DB saveData2DB = new SaveData2DB();

19 saveData2DB.save();

20 System.out.println("end");

21 }

22 }

48304ba5e6f9fe08f3fa1abda7d326ab.png

48304ba5e6f9fe08f3fa1abda7d326ab.png

/ExcelTest/src/com/b510/common/Common.java

48304ba5e6f9fe08f3fa1abda7d326ab.png

48304ba5e6f9fe08f3fa1abda7d326ab.png

1 /**

2 *

3 */

4 package com.b510.common;

5

6 /**

7 * @author Hongten

8 * @created 2014-5-18

9 */

10 public class Common {

11

12 // connect the database

13 public static final String DRIVER = "com.mysql.jdbc.Driver";

14 public static final String DB_NAME = "test";

15 public static final String USERNAME = "root";

16 public static final String PASSWORD = "root";

17 public static final String IP = "192.168.1.103";

18 public static final String PORT = "3306";

19 public static final String URL = "jdbc:mysql://" + IP + ":" + PORT + "/" + DB_NAME;

20

21 // common

22 public static final String EXCEL_PATH = "lib/student_info.xls";

23

24 // sql

25 public static final String INSERT_STUDENT_SQL = "insert into student_info(no, name, age, score) values(?, ?, ?, ?)";

26 public static final String UPDATE_STUDENT_SQL = "update student_info set no = ?, name = ?, age= ?, score = ? where id = ? ";

27 public static final String SELECT_STUDENT_ALL_SQL = "select id,no,name,age,score from student_info";

28 public static final String SELECT_STUDENT_SQL = "select * from student_info where name like ";

29 }

48304ba5e6f9fe08f3fa1abda7d326ab.png

48304ba5e6f9fe08f3fa1abda7d326ab.png

/ExcelTest/src/com/b510/excel/ReadExcel.java

48304ba5e6f9fe08f3fa1abda7d326ab.png

48304ba5e6f9fe08f3fa1abda7d326ab.png

1 /**

2 *

3 */

4 package com.b510.excel;

5

6 import java.io.FileInputStream;

7 import java.io.IOException;

8 import java.io.InputStream;

9 import java.util.ArrayList;

10 import java.util.List;

11

12 import org.apache.poi.hssf.usermodel.HSSFCell;

13 import org.apache.poi.hssf.usermodel.HSSFRow;

14 import org.apache.poi.hssf.usermodel.HSSFSheet;

15 import org.apache.poi.hssf.usermodel.HSSFWorkbook;

16

17 import com.b510.common.Common;

18 import com.b510.excel.vo.Student;

19

20 /**

21 * @author Hongten

22 * @created 2014-5-18

23 */

24 public class ReadExcel {

25

26 public List readXls() throws IOException {

27 InputStream is = new FileInputStream(Common.EXCEL_PATH);

28 HSSFWorkbook hssfWorkbook = new HSSFWorkbook(is);

29 Student student = null;

30 List list = new ArrayList();

31 // 循环工作表Sheet

32 for (int numSheet = 0; numSheet < hssfWorkbook.getNumberOfSheets(); numSheet++) {

33 HSSFSheet hssfSheet = hssfWorkbook.getSheetAt(numSheet);

34 if (hssfSheet == null) {

35 continue;

36 }

37 // 循环行Row

38 for (int rowNum = 1; rowNum <= hssfSheet.getLastRowNum(); rowNum++) {

39 HSSFRow hssfRow = hssfSheet.getRow(rowNum);

40 if (hssfRow != null) {

41 student = new Student();

42 HSSFCell no = hssfRow.getCell(0);

43 HSSFCell name = hssfRow.getCell(1);

44 HSSFCell age = hssfRow.getCell(2);

45 HSSFCell score = hssfRow.getCell(3);

46 student.setNo(getValue(no));

47 student.setName(getValue(name));

48 student.setAge(getValue(age));

49 student.setScore(Float.valueOf(getValue(score)));

50 list.add(student);

51 }

52 }

53 }

54 return list;

55 }

56

57 @SuppressWarnings("static-access")

58 private String getValue(HSSFCell hssfCell) {

59 if (hssfCell.getCellType() == hssfCell.CELL_TYPE_BOOLEAN) {

60 // 返回布尔类型的值

61 return String.valueOf(hssfCell.getBooleanCellValue());

62 } else if (hssfCell.getCellType() == hssfCell.CELL_TYPE_NUMERIC) {

63 // 返回数值类型的值

64 return String.valueOf(hssfCell.getNumericCellValue());

65 } else {

66 // 返回字符串类型的值

67 return String.valueOf(hssfCell.getStringCellValue());

68 }

69 }

70 }

48304ba5e6f9fe08f3fa1abda7d326ab.png

48304ba5e6f9fe08f3fa1abda7d326ab.png

/ExcelTest/src/com/b510/excel/SaveData2DB.java

48304ba5e6f9fe08f3fa1abda7d326ab.png

48304ba5e6f9fe08f3fa1abda7d326ab.png

1 /**

2 *

3 */

4 package com.b510.excel;

5

6 import java.io.IOException;

7 import java.sql.SQLException;

8 import java.util.List;

9

10 import com.b510.common.Common;

11 import com.b510.excel.util.DbUtil;

12 import com.b510.excel.vo.Student;

13

14 /**

15 * @author Hongten

16 * @created 2014-5-18

17 */

18 public class SaveData2DB {

19

20 @SuppressWarnings({ "rawtypes" })

21 public void save() throws IOException, SQLException {

22 ReadExcel xlsMain = new ReadExcel();

23 Student student = null;

24 List list = xlsMain.readXls();

25

26 for (int i = 0; i < list.size(); i++) {

27 student = list.get(i);

28 List l = DbUtil.selectOne(Common.SELECT_STUDENT_SQL + "'%" + student.getName() + "%'", student);

29 if (!l.contains(1)) {

30 DbUtil.insert(Common.INSERT_STUDENT_SQL, student);

31 } else {

32 System.out.println("The Record was Exist : No. = " + student.getNo() + " , Name = " + student.getName() + ", Age = " + student.getAge() + ", and has been throw away!");

33 }

34 }

35 }

36 }

48304ba5e6f9fe08f3fa1abda7d326ab.png

48304ba5e6f9fe08f3fa1abda7d326ab.png

/ExcelTest/src/com/b510/excel/util/DbUtil.java

48304ba5e6f9fe08f3fa1abda7d326ab.png

48304ba5e6f9fe08f3fa1abda7d326ab.png

1 /**

2 *

3 */

4 package com.b510.excel.util;

5

6 import java.sql.Connection;

7 import java.sql.DriverManager;

8 import java.sql.PreparedStatement;

9 import java.sql.ResultSet;

10 import java.sql.SQLException;

11 import java.util.ArrayList;

12 import java.util.List;

13

14 import com.b510.common.Common;

15 import com.b510.excel.vo.Student;

16

17 /**

18 * @author Hongten

19 * @created 2014-5-18

20 */

21 public class DbUtil {

22

23 /**

24 * @param sql

25 */

26 public static void insert(String sql, Student student) throws SQLException {

27 Connection conn = null;

28 PreparedStatement ps = null;

29 try {

30 Class.forName(Common.DRIVER);

31 conn = DriverManager.getConnection(Common.URL, Common.USERNAME, Common.PASSWORD);

32 ps = conn.prepareStatement(sql);

33 ps.setString(1, student.getNo());

34 ps.setString(2, student.getName());

35 ps.setString(3, student.getAge());

36 ps.setString(4, String.valueOf(student.getScore()));

37 boolean flag = ps.execute();

38 if(!flag){

39 System.out.println("Save data : No. = " + student.getNo() + " , Name = " + student.getName() + ", Age = " + student.getAge() + " succeed!");

40 }

41 } catch (Exception e) {

42 e.printStackTrace();

43 } finally {

44 if (ps != null) {

45 ps.close();

46 }

47 if (conn != null) {

48 conn.close();

49 }

50 }

51 }

52

53 @SuppressWarnings({ "unchecked", "rawtypes" })

54 public static List selectOne(String sql, Student student) throws SQLException {

55 Connection conn = null;

56 PreparedStatement ps = null;

57 ResultSet rs = null;

58 List list = new ArrayList();

59 try {

60 Class.forName(Common.DRIVER);

61 conn = DriverManager.getConnection(Common.URL, Common.USERNAME, Common.PASSWORD);

62 ps = conn.prepareStatement(sql);

63 rs = ps.executeQuery();

64 while(rs.next()){

65 if(rs.getString("no").equals(student.getNo()) || rs.getString("name").equals(student.getName())|| rs.getString("age").equals(student.getAge())){

66 list.add(1);

67 }else{

68 list.add(0);

69 }

70 }

71 } catch (Exception e) {

72 e.printStackTrace();

73 } finally {

74 if (rs != null) {

75 rs.close();

76 }

77 if (ps != null) {

78 ps.close();

79 }

80 if (conn != null) {

81 conn.close();

82 }

83 }

84 return list;

85 }

86

87

88 public static ResultSet selectAll(String sql) throws SQLException {

89 Connection conn = null;

90 PreparedStatement ps = null;

91 ResultSet rs = null;

92 try {

93 Class.forName(Common.DRIVER);

94 conn = DriverManager.getConnection(Common.URL, Common.USERNAME, Common.PASSWORD);

95 ps = conn.prepareStatement(sql);

96 rs = ps.executeQuery();

97 } catch (Exception e) {

98 e.printStackTrace();

99 } finally {

100 if (rs != null) {

101 rs.close();

102 }

103 if (ps != null) {

104 ps.close();

105 }

106 if (conn != null) {

107 conn.close();

108 }

109 }

110 return rs;

111 }

112

113 }

48304ba5e6f9fe08f3fa1abda7d326ab.png

48304ba5e6f9fe08f3fa1abda7d326ab.png

/ExcelTest/src/com/b510/excel/vo/Student.java

48304ba5e6f9fe08f3fa1abda7d326ab.png

48304ba5e6f9fe08f3fa1abda7d326ab.png

1 /**

2 *

3 */

4 package com.b510.excel.vo;

5

6 /**

7 * Student

8 *

9 * @author Hongten

10 * @created 2014-5-18

11 */

12 public class Student {

13 /**

14 * id

15 */

16 private Integer id;

17 /**

18 * 学号

19 */

20 private String no;

21 /**

22 * 姓名

23 */

24 private String name;

25 /**

26 * 学院

27 */

28 private String age;

29 /**

30 * 成绩

31 */

32 private float score;

33

34 public Integer getId() {

35 return id;

36 }

37

38 public void setId(Integer id) {

39 this.id = id;

40 }

41

42 public String getNo() {

43 return no;

44 }

45

46 public void setNo(String no) {

47 this.no = no;

48 }

49

50 public String getName() {

51 return name;

52 }

53

54 public void setName(String name) {

55 this.name = name;

56 }

57

58 public String getAge() {

59 return age;

60 }

61

62 public void setAge(String age) {

63 this.age = age;

64 }

65

66 public float getScore() {

67 return score;

68 }

69

70 public void setScore(float score) {

71 this.score = score;

72 }

73

74 }

48304ba5e6f9fe08f3fa1abda7d326ab.png

48304ba5e6f9fe08f3fa1abda7d326ab.png

poi读写excel

org.apache.poi

poi

3.14

一. 创建Excel 文档

48304ba5e6f9fe08f3fa1abda7d326ab.png

48304ba5e6f9fe08f3fa1abda7d326ab.png

import org.apache.poi.hssf.usermodel.HSSFWorkbook;

import org.apache.poi.hssf.usermodel.HSSFSheet;

import org.apache.poi.hssf.usermodel.HSSFRow;

import org.apache.poi.hssf.usermodel.HSSFCell;

import java.io.FileOutputStream;

public class XLS {

public static String outputFile = "./test.xls";

public static void main(String argv[]) {

try {

// 创建新的Excel 工作簿

HSSFWorkbook workbook = new HSSFWorkbook();

// 在Excel工作簿中建一工作表,其名为缺省值

// 如要新建一名为"效益指标"的工作表,其语句为:

// HSSFSheet sheet = workbook.createSheet("效益指标");

HSSFSheet sheet = workbook.createSheet();

//创建第一行

HSSFRow row = sheet.createRow((short)0);

//创建第一列

HSSFCell cell = row.createCell((short)0);

//定义单元格为字符串类型

cell.setCellType(HSSFCell.CELL_TYPE_STRING);

//在单元格中输入一些内容

cell.setCellValue("增加值");

// 新建一输出文件流

FileOutputStream fOut = new FileOutputStream(outputFile);

// 把相应的Excel 工作簿存盘

workbook.write(fOut);

fOut.flush();

fOut.close();

System.out.println("文件已经生成...");

} catch (Exception e) {

System.out.println("已运行 xlCreate() : " + e);

}

}

}

48304ba5e6f9fe08f3fa1abda7d326ab.png

48304ba5e6f9fe08f3fa1abda7d326ab.png

二. 读取Excel文档中的数据

48304ba5e6f9fe08f3fa1abda7d326ab.png

48304ba5e6f9fe08f3fa1abda7d326ab.png

import org.apache.poi.hssf.usermodel.HSSFWorkbook;

import org.apache.poi.hssf.usermodel.HSSFSheet;

import org.apache.poi.hssf.usermodel.HSSFRow;

import org.apache.poi.hssf.usermodel.HSSFCell;

import java.io.FileInputStream;

public class XLS {

/** windows目录用反斜线 */

public static String fileToBeRead = "./test.xls";//"D:\\test1.xls";

public static void main(String argv[]) {

try {

// 创建对Excel工作簿文件的引用

HSSFWorkbook workbook = new HSSFWorkbook(new FileInputStream(fileToBeRead));

// 创建对工作表的引用。此处按名引用(让我们假定那张表有着缺省名"Sheet1")

HSSFSheet sheet = workbook.getSheet("Sheet0");

// 也可用getSheetAt(int index)按索引引用,在Excel文档中,第一张工作表的缺省索引是0,其语句为:HSSFSheet sheet = workbook.getSheetAt(0);

// 读取左上端单元

HSSFRow row = sheet.getRow(0);

HSSFCell cell = row.getCell((short) 0);

// 输出单元内容,cell.getStringCellValue()就是取所在单元的值

System.out.println("左上端单元是: " + cell.getStringCellValue());

} catch (Exception e) {

System.out.println("已运行xlRead() : " + e);

}

}

}

48304ba5e6f9fe08f3fa1abda7d326ab.png

48304ba5e6f9fe08f3fa1abda7d326ab.png

设置单元格格式

在这里,我们将只介绍一些和格式设置有关的语句,我们假定workbook就是对一个工作簿的引用。在Java中,第一步要做的就是创建和设置字体和单元格的格式,然后再应用这些格式:

1、创建字体,设置其为红色、粗体:

2、创建格式

3、应用格式

三. 处理WORD文档

实例一:读excel:

import java.io.File;

import java.io.FileInputStream;

import java.io.InputStream;

import jxl.Cell;

import jxl.CellType;

import jxl.Sheet;

import jxl.Workbook;

import jxl.write.Label;

public class xls

{

public static void main(String[] args)

{

jxl.Workbook readwb = null;

try

{

// 构建Workbook对象, 只读Workbook对象,直接从本地文件创建Workbook

InputStream instream = new FileInputStream("./活动日历.xls");

readwb = Workbook.getWorkbook(instream);

// 获取第一张Sheet表

Sheet readsheet = readwb.getSheet(0);

int rsColumns = readsheet.getColumns();//总列数

int rsRows = readsheet.getRows();//总行数

for (int i = 0; i < rsRows; i++){

for (int j = 0; j < rsColumns; j++){

Cell cell = readsheet.getCell(j, i);

System.out.print(cell.getContents() + " ");

}

System.out.println();

}

//创建新的可写入的Excel工作薄

jxl.write.WritableWorkbook wwb = Workbook.createWorkbook(new File("./活动日历1.xls"), readwb);

// 读取第一张工作表

jxl.write.WritableSheet ws = wwb.getSheet(0);

// 获得第一个单元格对象

jxl.write.WritableCell wc = ws.getWritableCell(0, 0);

// 判断单元格的类型, 做出相应的转化

if (wc.getType() == CellType.LABEL)

{

Label l = (Label) wc;

l.setString("新姓名");

}

wwb.write();

wwb.close();

} catch (Exception e) {

e.printStackTrace();

} finally {

readwb.close();

}

}

}

实例二:写excel:

importjava.io.File;

importjava.io.FileNotFoundException;

importjava.io.FileOutputStream;

importjava.io.IOException;

importjava.io.OutputStream;

importjxl.Workbook;

importjxl.write.Label;

importjxl.write.WritableSheet;

importjxl.write.WritableWorkbook;

importjxl.write.WriteException;

importjxl.write.biff.RowsExceededException;

public classxls {

public void createExcel(OutputStream os) throwsWriteException, IOException {

// 创建工作薄

WritableWorkbook workbook =Workbook.createWorkbook(os);

// 创建新的一页

WritableSheet sheet = workbook.createSheet("First Sheet", 0);

// 创建要显示的内容,创建一个单元格,第一个参数为列坐标,第二个参数为行坐标,第三个参数为内容

Label xuexiao = new Label(0, 0, "学校");

sheet.addCell(xuexiao);

Label zhuanye = new Label(1, 0, "专业");

sheet.addCell(zhuanye);

Label jingzhengli = new Label(2, 0, "专业竞争力");

sheet.addCell(jingzhengli);

Label qinghua = new Label(0, 1, "清华大学");

sheet.addCell(qinghua);

Label jisuanji = new Label(1, 1, "计算机专业");

sheet.addCell(jisuanji);

Label gao = new Label(2, 1, "高");

sheet.addCell(gao);

Label beida = new Label(0, 2, "北京大学");

sheet.addCell(beida);

Label falv = new Label(1, 2, "法律专业");

sheet.addCell(falv);

Label zhong = new Label(2, 2, "中");

sheet.addCell(zhong);

Label ligong = new Label(0, 3, "北京理工大学");

sheet.addCell(ligong);

Label hangkong = new Label(1, 3, "航空专业");

sheet.addCell(hangkong);

Label di = new Label(2, 3, "低");

sheet.addCell(di);

// 把创建的内容写入到输出流中,并关闭输出流

workbook.write();

workbook.close();

os.close();

}

public static void main(String[] args) throwsIOException, RowsExceededException, WriteException {

try{

// 打开文件

WritableWorkbook book = Workbook.createWorkbook(new File("./测试.xls"));

// 生成名为“第一页”的工作表,参数0表示这是第一页

WritableSheet sheet = book.createSheet("第一页", 0);

// 在Label对象的构造子中指名单元格位置是第一列第一行(0,0)的内容

Label label = new Label(0, 0, "测试");

// 将定义好的单元格添加到工作表中

sheet.addCell(label);

jxl.write.Number number = new jxl.write.Number(1, 0, 1234567);

sheet.addCell(number);

jxl.write.Label s = new jxl.write.Label(1, 2, "水电站");

sheet.addCell(s);

// 写入数据并关闭文件

book.write();

book.close(); // 最好在finally中关闭,此处仅作为示例不太规范

} catch(Exception e) {

System.out.println(e);

}

}

}

实例二:3个功能-----从excel文件F:\红楼人物.xls读取数据;生成新的excel文件F:\红楼人物2.xls;修改原excel一个单元并输出为F:\红楼人物3.xls。

import jxl.*;

import jxl.format.UnderlineStyle;

import jxl.write.*;

import jxl.write.Number;

import jxl.write.Boolean;

import jxl.Cell;

import java.io.*;

public class xls {

public xls() {

}

/*** 读取Excel */

public static void readExcel(String filePath) {

try {

InputStream is = new FileInputStream(filePath);

Workbook rwb = Workbook.getWorkbook(is);

// 这里有两种方法获取sheet表:名字和下标(从0开始)

// Sheet st = rwb.getSheet("original");

Sheet st = rwb.getSheet(0);

/**

* //获得第一行第一列单元的值 Cell c00 = st.getCell(0,0); //通用的获取cell值的方式,返回字符串

* String strc00 = c00.getContents(); //获得cell具体类型值的方式

* if(c00.getType() == CellType.LABEL) { LabelCell labelc00 =

* (LabelCell)c00; strc00 = labelc00.getString(); } //输出

* System.out.println(strc00);

*/

// Sheet的下标是从0开始

// 获取第一张Sheet表

Sheet rst = rwb.getSheet(0);

// 获取Sheet表中所包含的总列数

int rsColumns = rst.getColumns();

// 获取Sheet表中所包含的总行数

int rsRows = rst.getRows();

// 获取指定单元格的对象引用

for (int i = 0; i < rsRows; i++) {

for (int j = 0; j < rsColumns; j++) {

Cell cell = rst.getCell(j, i);

System.out.print(cell.getContents() + " ");

}

System.out.println();

}

// 关闭

rwb.close();

} catch (Exception e) {

e.printStackTrace();

}

}

/** 输出Excel */

public static void writeExcel(OutputStream os) {

try {

/**

* 只能通过API提供的 工厂方法来创建Workbook,而不能使用WritableWorkbook的构造函数,

* 因为类WritableWorkbook的构造函数为 protected类型:方法一:直接从目标文件中读取

* WritableWorkbook wwb = Workbook.createWorkbook(new

* File(targetfile));方法 二:如下实例所示 将WritableWorkbook直接写入到输出流

*/

WritableWorkbook wwb = Workbook.createWorkbook(os);

// 创建Excel工作表 指定名称和位置

WritableSheet ws = wwb.createSheet("Test Sheet 1", 0);

/************** 往工作表中添加数据 *****************/

// 1.添加Label对象

Label label = new Label(0, 0, "测试");

ws.addCell(label);

// 添加带有字型Formatting对象

WritableFont wf = new WritableFont(WritableFont.TIMES, 18, WritableFont.BOLD, true);

WritableCellFormat wcf = new WritableCellFormat(wf);

Label labelcf = new Label(1, 0, "this is a label test", wcf);

ws.addCell(labelcf);

// 添加带有字体颜色的Formatting对象

WritableFont wfc = new WritableFont(WritableFont.ARIAL, 10, WritableFont.NO_BOLD, false,

UnderlineStyle.NO_UNDERLINE, jxl.format.Colour.DARK_YELLOW);

WritableCellFormat wcfFC = new WritableCellFormat(wfc);

Label labelCF = new Label(1, 0, "Ok", wcfFC);

ws.addCell(labelCF);

// 2.添加Number对象

Number labelN = new Number(0, 1, 3.1415926);

ws.addCell(labelN);

// 添加带有formatting的Number对象

NumberFormat nf = new NumberFormat("#.##");

WritableCellFormat wcfN = new WritableCellFormat(nf);

Number labelNF = new jxl.write.Number(1, 1, 3.1415926, wcfN);

ws.addCell(labelNF);

// 3.添加Boolean对象

Boolean labelB = new jxl.write.Boolean(0, 2, true);

ws.addCell(labelB);

Boolean labelB1 = new jxl.write.Boolean(1, 2, false);

ws.addCell(labelB1);

// 4.添加DateTime对象

jxl.write.DateTime labelDT = new jxl.write.DateTime(0, 3, new java.util.Date());

ws.addCell(labelDT);

// 5.添加带有formatting的DateFormat对象

DateFormat df = new DateFormat("dd MM yyyy hh:mm:ss");

WritableCellFormat wcfDF = new WritableCellFormat(df);

DateTime labelDTF = new DateTime(1, 3, new java.util.Date(), wcfDF);

ws.addCell(labelDTF);

// 6.添加图片对象,jxl只支持png格式图片

File image = new File("f:\\1.png");

WritableImage wimage = new WritableImage(0, 4, 6, 17, image);

ws.addImage(wimage);

// 7.写入工作表

wwb.write();

wwb.close();

} catch (Exception e) {

e.printStackTrace();

}

}

/**

* 将file1拷贝后,进行修改并创建输出对象file2 单元格原有的格式化修饰不能去掉,但仍可将新的单元格修饰加上去,

* 以使单元格的内容以不同的形式表现

*/

public static void modifyExcel(File file1, File file2) {

try {

Workbook rwb = Workbook.getWorkbook(file1);

WritableWorkbook wwb = Workbook.createWorkbook(file2, rwb);// copy

WritableFont wfc = new WritableFont(WritableFont.ARIAL, 10, WritableFont.NO_BOLD, false,

UnderlineStyle.NO_UNDERLINE, jxl.format.Colour.BLUE);

WritableCellFormat wcfFC = new WritableCellFormat(wfc);

WritableSheet ws = wwb.getSheet(0);

WritableCell wc = ws.getWritableCell(0, 0);

// 判断单元格的类型,做出相应的转换

if (wc.getType() == CellType.LABEL) {

Label labelCF = new Label(0, 0, "人物(新)", wcfFC);

ws.addCell(labelCF);

// Label label = (Label)wc;

// label.setString("被修改");

}

wwb.write();

wwb.close();

rwb.close();

} catch (Exception e) {

e.printStackTrace();

}

}

// 测试

public static void main(String args[]) {

try {

// 读EXCEL

xls.readExcel("F:/红楼人物.xls");

// 输出EXCEL

File filewrite = new File("F:/红楼人物2.xls");

filewrite.createNewFile();

OutputStream os = new FileOutputStream(filewrite);

xls.writeExcel(os);

// 修改EXCEL

xls.modifyExcel(new File("F:/红楼人物.xls"), new File("F:/红楼人物3.xls"));

} catch (Exception e) {

e.printStackTrace();

}

}

}

net.sourceforge.jexcelapi

jxl

2.6.12

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值