天天看点

jxl操作Excel的一些基础操作,如读写文件,数字,日期的转换,表格的合并欢迎使用Markdown编辑器

jxl操作Excel的一些基础操作,如读写文件,数字,日期的转换,表格的合并

欢迎使用Markdown编辑器

带尺寸的图片:

jxl操作Excel的一些基础操作,如读写文件,数字,日期的转换,表格的合并欢迎使用Markdown编辑器

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;
}
           

}

居中的图片:

jxl操作Excel的一些基础操作,如读写文件,数字,日期的转换,表格的合并欢迎使用Markdown编辑器

居中并且带尺寸的图片:

jxl操作Excel的一些基础操作,如读写文件,数字,日期的转换,表格的合并欢迎使用Markdown编辑器

当然,我们为了让用户更加便捷,我们增加了图片拖拽功能。

如何插入一段漂亮的代码片

去博客设置页面,选择一款你喜欢的代码片高亮样式,下面展示同样高亮的

代码片

.

// An highlighted block
var foo = 'bar';
           

生成一个适合你的列表

  • 项目
    • 项目
      • 项目
  1. 项目1
  2. 项目2
  3. 项目3
  • 计划任务
  • 完成任务

创建一个表格

一个简单的表格是这么创建的:

项目 Value
电脑 $1600
手机 $12
导管 $1

设定内容居中、居左、居右

使用

:---------:

居中

使用

:----------

居左

使用

----------:

居右

第一列 第二列 第三列
第一列文本居中 第二列文本居右 第三列文本居左

SmartyPants

SmartyPants将ASCII标点字符转换为“智能”印刷标点HTML实体。例如:

TYPE ASCII HTML
Single backticks

'Isn't this fun?'

‘Isn’t this fun?’
Quotes

"Isn't this fun?"

“Isn’t this fun?”
Dashes

-- is en-dash, --- is em-dash

– 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 &ThinSpace; . \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文件,在上方工具栏可以选择导入功能进行对应扩展名的文件导入,

继续你的创作。

  1. 注脚的解释 ↩︎

继续阅读