jxl操作Excel的一些基础操作,如读写文件,数字,日期的转换,表格的合并
欢迎使用Markdown编辑器
带尺寸的图片:
![](https://img.laitimes.com/img/_0nNw4CM6IyYiwiM6ICdiwiI3p1dw1GT0ljMZpXWU1ENoJDWth3VZlXOW1kdJBDTzgTeOZXUYpVd1kmYr50MZVXSYlFMG1GZolTeMZTTINGMShUYvwlbj5yZtlmbkN3YuQnclZnbvN2Ztl2Lc9CX6MHc0RHaiojIsJye.jpg)
package dome;
import java.io.File;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import bean.Person;
import jxl.Workbook;
import jxl.write.*;
import jxl.write.Number;
//这是写的操作
public class WriteDate {
public static void write(List persons) throws Exception {
//这是在D:/Download/目录下创建一个persons.xls文件
File xlsFile = new File(“D:/Download/persons.xls”);
// 创建一个工作簿
WritableWorkbook workbook = Workbook.createWorkbook(xlsFile);
// 创建一个工作表
WritableSheet sheet = workbook.createSheet(“person”, 0);
//写入表头
sheet.addCell(new Label(0, 0, “姓名”));
sheet.addCell(new Label(1, 0, “是否结婚”));
sheet.addCell(new Label(2, 0, “年龄”));
sheet.addCell(new Label(3, 0, “生日”));
sheet.addCell(new Label(4, 0, “”));
sheet.addCell(new Label(5, 0, “身高”));
//遍历传入集合
for (int i=1;i<persons.size();i++) {
Person person=persons.get(i);
//Label是单元格
Label name=new Label(0, i, person.getName());
sheet.addCell(name);
String str="否";
if(person.getIsMarride()){
str="是";
}
Label isMarride=new Label(1, i, str);
sheet.addCell(isMarride);
//Number 是数字单元格,jxl.write.Number,可以和jxl.write.Label相互转换,但类型一定要正确
Number age=new Number(2,i, person.getAge());
sheet.addCell(age);
//DateTime 和,jxl.write.Number近似,但是是日期格式
DateTime birthDay=new DateTime( 3,i, person.getBirthDay());
sheet.addCell(birthDay);
sheet.addCell(new Label( 4,i, ""));
Number height=new Number(5,i, person.getHeight());
sheet.addCell(height);
}
workbook.write();
workbook.close();
}
//下面是测试数据
public static void main(String[] args) throws Exception {
SimpleDateFormat formatter = new SimpleDateFormat(“yyyy-MM-dd”);
Date d=formatter.parse(“1987-11-23”);
Date d1=formatter.parse(“2000-12-3”);
Date d2=formatter.parse(“2013-1-3”);
Person p=new Person(“忘了”,true,18,d,178.194);
Person p1=new Person(“无聊”,false,38,d1,170.153);
Person p2=new Person(“战力”,false,37,d,168.139);
Person p3=new Person(“张武”,true,39,d2,150.181);
List persons =new ArrayList();
persons.add§;
persons.add(p1);
persons.add(p2);
persons.add(p3);
try {
write(persons);
} catch (Exception e) {
e.printStackTrace();
}
}
}
import jxl.write.WritableCellFormat;
import jxl.write.WritableFont;
import jxl.write.WritableSheet;
import jxl.write.WritableWorkbook;
//这个类是格式转换的类
public class FormatData {
public static void format() throws Exception {
File xlsFile = new File("D:/Download/persons.xls");
// 创建一个工作表
Workbook workbook = Workbook.getWorkbook(xlsFile);
WritableWorkbook book = Workbook.createWorkbook(xlsFile, workbook);
WritableSheet sheet = book.getSheet("person");
if (sheet != null) {
//指定字体格式,大小(16),字体(黑体)0
WritableFont font1 = new WritableFont(WritableFont.TIMES, 16,
WritableFont.BOLD);
WritableCellFormat format1 = new WritableCellFormat(font1);
// 把水平对齐方式指定为居中
format1.setAlignment(jxl.format.Alignment.CENTRE);
// 把垂直对齐方式指定为居中
format1.setVerticalAlignment(VerticalAlignment.CENTRE);
sheet.addCell(new Label(0, 0, "姓名",format1));
sheet.addCell(new Label(1, 0, "是否结婚",format1));
sheet.setColumnView(1, 20);
sheet.addCell(new Label(2, 0, "年龄",format1));
sheet.addCell(new Label(3, 0, "生日",format1));
//表格合并mergeCells(开始列数,开始行数, 结束列数, 结束行数);
sheet.mergeCells(3, 0, 4, 0);
sheet.addCell(new Label(5, 0, "身高",format1));
// 添加带有样式的DateFormat对象
DateFormat dateFormat = new DateFormat("yyyy年MM月dd日");
WritableCellFormat formatDate = new WritableCellFormat(dateFormat);
//获得原有数据
DateTime date=(DateTime)sheet.getCell(3, row);
date.setCellFormat(formatDate);
// 添加带有样式的Number对象
NumberFormat nFormat = new NumberFormat("#.##");
WritableCellFormat formatN = new WritableCellFormat(nFormat);
Number hei=(Number)sheet.getCell(5, row);
hei.setCellFormat(formatN);
int rows = sheet.getRows();
for (int row = 1; row < rows; row++) {
DateTime date=(DateTime)sheet.getCell(3, row);
date.setCellFormat(formatDate);
sheet.mergeCells(3, row, 4, 0);
Number hei=(Number)sheet.getCell(5, row);
hei.setCellFormat(formatN);
}
book.write();
book.close();
workbook.close();
}
}
}
package dome;
import java.io.File;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import jxl.DateCell;
import jxl.write.WritableSheet;
import jxl.write.WritableWorkbook;
import jxl.Workbook;
import jxl.write.Number;
import bean.Person;
//读取文件中数据的类
public class ReadDate {
public static List<Person> read() {
File xlsFile = new File("D:/Download/persons.xls");
// 获得工作簿对象
Workbook workbook = null;
WritableWorkbook book = null;
try {
workbook = Workbook.getWorkbook(xlsFile);
book = Workbook.createWorkbook(xlsFile, workbook);
} catch (Exception e) {
e.printStackTrace();
}
// 获得所有工作表
WritableSheet sheet = book.getSheet("person");
List<Person> persons = new ArrayList<Person>();
if (sheet != null) {
System.out.println(sheet);
int rows = sheet.getRows();
for (int row = 1; row < rows; row++) {
Person person = new Person();
//string类型
String name = sheet.getCell(0, row).getContents();
person.setName(name);
//Boolen类型
String isMarride = sheet.getCell(1, row).getContents();
if (isMarride.equals("是")) {
person.setIsMarride(true);
} else {
person.setIsMarride(false);
}
//int类型
String age = sheet.getCell(2, row).getContents();
person.setAge(Integer.parseInt(age));
// 日期 类型的处理
DateCell birthDay = (DateCell) sheet.getCell(3, row);
Date jxlDate = birthDay.getDate();
person.setBirthDay(jxlDate);
//double类型
Number height=(Number)sheet.getCell(5, row);
person.setHeight(height.getValue());
persons.add(person);
}
}
workbook.close();
return persons;
}
public static void main(String[] args) {
List<Person> persons = read();
System.out.println(persons.size()+"-----------------");
// 遍历工作表
for (Person person : persons) {
System.out.println(person.getName());
System.out.println(person.getIsMarride());
System.out.println(person.getAge() + "");
System.out.println(person.getBirthDay());
System.out.println(person.getHeight() + "");
System.out.println("-----------------");
}
}
}
package bean;
import java.util.Date;
//操作的数据,一个普通的实体类
public class Person {
private String name;
private Boolean isMarride;
private int age;
private Date birthDay;
private Double height;
public Person() {
super();
}
public Person(String name) {
super();
this.name = name;
}
public Person(String name, int age) {
super();
this.name = name;
this.age = age;
}
public Person(String name, int age, Date birthDay) {
super();
this.name = name;
this.age = age;
this.birthDay = birthDay;
}
public Person(String name, Boolean isMarride, int age, Date birthDay,
Double height) {
super();
this.name = name;
this.isMarride = isMarride;
this.age = age;
this.birthDay = birthDay;
this.height = height;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public Boolean getIsMarride() {
return isMarride;
}
public void setIsMarride(Boolean isMarride) {
this.isMarride = isMarride;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public Date getBirthDay() {
return birthDay;
}
public void setBirthDay(Date birthDay) {
this.birthDay = birthDay;
}
public Double getHeight() {
return height;
}
public void setHeight(Double height) {
this.height = height;
}
}
居中的图片:
居中并且带尺寸的图片:
当然,我们为了让用户更加便捷,我们增加了图片拖拽功能。
如何插入一段漂亮的代码片
去博客设置页面,选择一款你喜欢的代码片高亮样式,下面展示同样高亮的
代码片
.
// An highlighted block
var foo = 'bar';
生成一个适合你的列表
- 项目
- 项目
- 项目
- 项目
- 项目1
- 项目2
- 项目3
- 计划任务
- 完成任务
创建一个表格
一个简单的表格是这么创建的:
项目 | Value |
---|---|
电脑 | $1600 |
手机 | $12 |
导管 | $1 |
设定内容居中、居左、居右
使用
:---------:
居中
使用
:----------
居左
使用
----------:
居右
第一列 | 第二列 | 第三列 |
---|---|---|
第一列文本居中 | 第二列文本居右 | 第三列文本居左 |
SmartyPants
SmartyPants将ASCII标点字符转换为“智能”印刷标点HTML实体。例如:
TYPE | ASCII | HTML |
---|---|---|
Single backticks | | ‘Isn’t this fun?’ |
Quotes | | “Isn’t this fun?” |
Dashes | | – is en-dash, — is em-dash |
创建一个自定义列表
- Markdown
- Text-to- HTML conversion tool Authors
- John
- Luke
如何创建一个注脚
一个具有注脚的文本。1
注释也是必不可少的
Markdown将文本转换为 HTML。
KaTeX数学公式
您可以使用渲染LaTeX数学表达式 KaTeX:
Gamma公式展示 Γ ( n ) = ( n − 1 ) ! ∀ n ∈ N \Gamma(n) = (n-1)!\quad\forall n\in\mathbb N Γ(n)=(n−1)!∀n∈N 是通过欧拉积分
Γ ( z ) = ∫ 0 ∞ t z − 1 e − t d t   . \Gamma(z) = \int_0^\infty t^{z-1}e^{-t}dt\,. Γ(z)=∫0∞tz−1e−tdt.
你可以找到更多关于的信息 LaTeX 数学表达式here.
新的甘特图功能,丰富你的文章
- 关于 甘特图 语法,参考 这儿,
UML 图表
可以使用UML图表进行渲染。 Mermaid. 例如下面产生的一个序列图::
这将产生一个流程图。:
- 关于 Mermaid 语法,参考 这儿,
FLowchart流程图
我们依旧会支持flowchart的流程图:
- 关于 Flowchart流程图 语法,参考 这儿.
导出与导入
导出
如果你想尝试使用此编辑器, 你可以在此篇文章任意编辑。当你完成了一篇文章的写作, 在上方工具栏找到 文章导出 ,生成一个.md文件或者.html文件进行本地保存。
导入
如果你想加载一篇你写过的.md文件,在上方工具栏可以选择导入功能进行对应扩展名的文件导入,
继续你的创作。
- 注脚的解释 ↩︎