`

创建 读取excel文件 添加/更新内容

    博客分类:
  • java
阅读更多
//创建excel并写入信息

public void create(String savePath) throws IOException, RowsExceededException, WriteException{
		createFolder(savePath);
		String fileName = savePath + "/test.xls";
		File file = new File(fileName);
		WritableWorkbook wwb = Workbook.createWorkbook(file);
		WritableSheet ws = wwb.createSheet("sheet 1",0);
		ws.addCell(new Label(0,0,"apiName"));
		ws.addCell(new Label(1,0,"selectedTimes"));
                wwb.write();
		wwb.close();
	}

 

//添加信息或更新信息
public void addOrUpdate(String savePath) throws BiffException, IOException, WriteException{
		 // 创建只读的 Excel 工作薄的对象
		 File source = new File(savePath + "/test.xls");
		 Workbook rw = Workbook.getWorkbook(source);
		 Sheet sheet = rw.getSheet(0);
		//获取Sheet表中所包含的总列数
		int columns = sheet.getColumns();
		//获取Sheet表中所包含的总行数
		int rows = sheet.getRows();
		 // 创建可写入的 Excel 工作薄对象
		 File dest = new File(savePath + "/test.xls");
		 //将源excel文件复制到目的excel文件
		 WritableWorkbook  wwb = Workbook.createWorkbook(dest, rw);
		 // 读取第一张工作表
		 WritableSheet ws = wwb.getSheet(0);
		 //添加新的内容
		 ws.addCell(new Label(0,rows,"map"));
		 ws.addCell(new Label(1,rows,"2"));
		 /*用来Upadate
		 // 获得第一个单元格对象
		 WritableCell wc = ws.getWritableCell(0, 0);

		 // 判断单元格的类型 , 做出相应的转化
		 if(wc.getType() == CellType.LABEL)
		 {
		   Label l = (Label)wc;
		   l.setString("The value has been modified.");
		 }
		 */
		 // 写入 Excel 对象
		 wwb.write();
		 // 关闭可写入的 Excel 对象
		 wwb.close();
		 // 关闭只读的 Excel 对象
		 rw.close();

		
	}
 

 

//创建文件夹
/*
	 * 创建存储excel文件的文件夹
	 */
	public static void createFolder(String path){
		File folder = new File(path);
		if(!(folder.exists()) && !(folder.isDirectory())){
			boolean createOk = folder.mkdirs();
			if(createOk){
				System.out.println("ok:创建文件夹成功!" );
			}else{
				System.out.println("err:创建文件夹失败! " );   
			}
		}
	}
 
//默认Label写入String型,下面是写入各种类型,如数字等
//1. 添加 Label 对象
 jxl.write.Label labelC = new jxl.write.Label(0, 0, "This is a Label cell");
 ws.addCell(labelC);
 // 添加带有字型 Formatting 的对象
 jxl.write.WritableFont wf = new jxl.write.WritableFont(WritableFont.TIMES, 18,
 WritableFont.BOLD, true);
 jxl.write.WritableCellFormat wcfF = new jxl.write.WritableCellFormat(wf);
 jxl.write.Label labelCF = new jxl.write.Label(1, 0, "This is a Label Cell", wcfF);
 ws.addCell(labelCF);
 // 添加带有字体颜色 Formatting 的对象
 jxl.write.WritableFont wfc = new jxl.write.WritableFont(WritableFont.ARIAL, 10,
 WritableFont.NO_BOLD, false,
 UnderlineStyle.NO_UNDERLINE, jxl.format.Colour.RED);
 jxl.write.WritableCellFormat wcfFC = new jxl.write.WritableCellFormat(wfc);
 jxl.write.Label labelCFC = new jxl.write.Label(1, 0, "This is a Label Cell", wcfFC);
 ws.addCell(labelCF);
 //2. 添加 Number 对象
 jxl.write.Number labelN = new jxl.write.Number(0, 1, 3.1415926);
 ws.addCell(labelN);
 // 添加带有 formatting 的 Number 对象
 jxl.write.NumberFormat nf = new jxl.write.NumberFormat("#.##");
 jxl.write.WritableCellFormat wcfN = new jxl.write.WritableCellFormat(nf);
 jxl.write.Number labelNF = new jxl.write.Number(1, 1, 3.1415926, wcfN);
 ws.addCell(labelNF);
 //3. 添加 Boolean 对象
 jxl.write.Boolean labelB = new jxl.write.Boolean(0, 2, false);
 ws.addCell(labelB);
 //4. 添加 DateTime 对象
 jxl.write.DateTime labelDT = new jxl.write.DateTime(0, 3, new java.util.Date());
 ws.addCell(labelDT);
 // 添加带有 formatting 的 DateFormat 对象
 jxl.write.DateFormat df = new jxl.write.DateFormat("dd MM yyyy hh:mm:ss");
 jxl.write.WritableCellFormat wcfDF = new jxl.write.WritableCellFormat(df);
 jxl.write.DateTime labelDTF = new jxl.write.DateTime(1, 3, new java.util.Date(),
 wcfDF);
 ws.addCell(labelDTF);
 
//读取excel
	/*new
	 * 获取上传的excel教师信息文件,并进行解析,将各项内容存储到数据库中
	 */
	public List<Teacher> getTeachers(String filePath){
		
		InputStream is = null;
		try {
			is = new FileInputStream(filePath);
		} catch (FileNotFoundException e1) {
			// TODO Auto-generated catch block
			e1.printStackTrace();
		}
		try {
			Workbook wb = Workbook.getWorkbook(is);
			Sheet sheet = wb.getSheet(0); // 第几张表格从零开始
			if (sheet != null) {
				// 获取表格总列数
				int rsColumns = sheet.getColumns();
				// 获取表格总行数
				int rsRows = sheet.getRows();
				teacherList = new ArrayList();
				for (int rowNum = 1; rowNum < rsRows; rowNum++) {
					Cell[] cells = sheet.getRow(rowNum);
					for (int i = 0; i < rsColumns && i < cells.length; i++) {// 列数
						System.out.println(getExcelColumnLabel(i)
								+ "============" + cells[i].getContents());
						String columnLabel =  getExcelColumnLabel(i);
						String content = cells[i].getContents();
						if(columnLabel.equals("A")){
							no = content;
						}
						if(columnLabel.equals("B")){
							name = content;
						}
						if(columnLabel.equals("C")){
							password = content;
						}
						if(columnLabel.equals("D")){
							if(content.equals("男")){
								gender = "1";
							}else{
								gender = "2";
							}
						}
						if(columnLabel.equals("E")){
							telpone = content;
						}
						if(columnLabel.equals("F")){
							qq = content;
						}
						if(columnLabel.equals("G")){
							title = content;
						}
						if(columnLabel.equals("H")){
							permission = content;
						}
					}
					Teacher teacher = new Teacher();
					teacher.setNo(no);
					teacher.setName(name);
					teacher.setPassword(password);
					teacher.setGender(gender);
					teacher.setTelpone(telpone);
					teacher.setQq(qq);
					teacher.setTitle(title);
					teacher.setPermission(permission);
					teacherList.add(teacher);
				}
			}
			wb.close();
		} catch (Exception e) {
			e.printStackTrace();
		}
		return teacherList;
	}
/**
	 * 获取excel对应列的字母
	 * 
	 * @author 
	 * @param num
	 * @return
	 */
	public static String getExcelColumnLabel(int num) {
		String temp = "";
		double i = Math.floor(Math.log(25.0 * (num) / 26.0 + 1) / Math.log(26)) + 1;
		if (i > 1) {
			double sub = num - 26 * (Math.pow(26, i - 1) - 1) / 25;
			for (double j = i; j > 0; j--) {
				temp = temp + (char) (sub / Math.pow(26, j - 1) + 65);
				sub = sub % Math.pow(26, j - 1);
			}
		} else {
			temp = temp + (char) (num + 65);
		}
		return temp;
	}
分享到:
评论

相关推荐

    java 读取Excel文件中的内容

    在Java编程中,读取Excel文件的内容是一项常见的任务,尤其在数据处理、报表生成或数据分析等领域。Excel文件通常包含表格数据,而Java提供多种库来处理这类任务,比如Apache POI、JExcelApi和OpenCSV等。本篇将重点...

    html静态读取excel文件

    以`SheetJS`为例,可以使用以下代码读取Excel文件: ```javascript var reader = new FileReader(); reader.onload = function(e) { var data = e.target.result; var workbook = XLSX.read(data, {type: 'binary...

    java读取excel文件

    2. **创建Workbook对象**:这是读取Excel文件的第一步,可以通过两种方式创建Workbook对象: - 直接从本地文件创建:通过指定文件路径,使用`Workbook.getWorkbook(File file)`或`Workbook.getWorkbook(InputStream...

    C#中读取excel文件中数据并导入dataGridView添加读取ProgressBar进度及当前读取条目挨个

    在本场景中,我们关注的重点是如何在读取Excel文件数据并将其导入到dataGridView时,同时展示一个进度条(progressbar)和当前正在读取的条目信息。这将提升用户体验,让用户了解后台操作的状态。 首先,我们需要...

    使用POI读取excel03/07文件内容

    在实际应用中,Apache POI不仅限于读取文件,还可以用来创建、更新Excel文件。通过熟练掌握POI,开发者能够方便地进行数据导入导出、报表生成、数据分析等工作。在阅读提供的博客链接时,你将找到更多关于如何具体...

    ubuntu下qt读取excel文件

    在Ubuntu操作系统中,使用Qt库开发应用程序时,有时我们需要处理数据,这可能涉及到读取Excel文件。Excel文件通常用于存储和组织数据,而Qt作为一个强大的跨平台应用开发框架,提供了多种方式来处理这类任务。本篇...

    Java读取Excel文件的内容

    总结来说,使用Java和Apache POI框架读取Excel文件的内容主要包括以下几个步骤: 1. 引入Apache POI依赖。 2. 创建`FileInputStream`,加载Excel文件到`Workbook`对象。 3. 从`Workbook`中获取`Sheet`对象。 4. 遍历...

    读取excel值替换文件内容

    总结来说,通过Java的Apache POI库,我们可以方便地读取Excel文件中的数据,结合文件I/O操作,可以实现在文件内容中替换键值对的功能。在实际应用中,根据项目需求,可能还需要考虑并发处理、多工作表操作、错误处理...

    python读取excel文件例子

    本例子将重点介绍如何使用Python通过`pandas`库来读取Excel文件。 首先,`pandas`是一个强大的数据处理库,它提供了DataFrame对象,能够方便地处理二维表格数据。要安装`pandas`,可以使用pip命令: ``` pip ...

    C# 读取EXCEL文件

    本主题将深入探讨如何使用C#来读取Excel文件,并将其内容展示在ListView控件中。Excel文件(如123.xls)是Microsoft Office套件中的电子表格文档,通常用于存储和处理数据。在C#中处理Excel文件可以借助多种库,如...

    使用MFC读取Excel文件

    在本文中,我们将深入探讨如何使用Microsoft Foundation Classes (MFC) 来读取Excel文件,特别是在配置文件ini中指定的目录下查找并处理所有Excel文件。MFC是Microsoft提供的一套面向对象的类库,它使得Windows应用...

    spring boot读取Excel操作示例

    创建一个名为 OfficeUtils 的工具类,该类提供了读取 Excel 文件的方法。该类使用 Apache POI 库读取 Excel 文件,并将数据存储在 Map 中。 ```java public class OfficeUtils { protected static final Logger ...

    c#无需安装office就可原格式读取excel文件

    3. **读取Excel文件**:创建一个`FileInfo`对象,表示你要读取的Excel文件路径,然后使用它创建一个`ExcelPackage`实例。下面是一个示例: ```csharp FileInfo excelFile = new FileInfo("path_to_your_file.xlsx...

    vb.net 编程读取excel文件中的数据

    在VB.NET编程中,读取Excel文件是常见的任务,尤其在数据处理和分析场景中。以下将详细讲解如何使用VB.NET来实现这一功能,并提供一些关键知识点。 首先,要读取Excel文件,我们需要一个能够与Excel文件交互的库。...

    c#读取excel文件.rar

    本示例“c#读取excel文件.rar”提供了一个解决方案,它着重解决了如何在C#应用中读取Excel文件的问题。下面将详细介绍相关的知识点。 首先,要读取Excel文件,你需要引入一个能与Excel接口的库。在.NET Framework中...

    三种ASP.NET读取Excel文件的方法浅析(含完整代码)

    ### ASP.NET读取Excel文件的方法浅析 #### 方法一:使用OleDB读取Excel文件 **概述** 本文档介绍了一种通过OleDB访问Excel文件的方式,将其作为数据源来读取其中的数据。这种方法适用于Excel文件版本为97至2003...

    c#读取excel文件

    Visual Studio 2012提供了一个强大的开发环境,支持创建具有可视化界面的应用程序,使得读取Excel文件变得更加方便。以下是一些关于如何在C#中使用VS2012来读取Excel文件的关键知识点: 1. **安装必要的库**:首先...

    直接读取Excel文件数据

    标题中的“直接读取Excel文件数据”指的是在Visual C++(简称VC)环境下,通过编程方式访问并解析Excel文件中的内容。通常,这涉及到使用Microsoft Office的自动化接口,如Microsoft Excel Object Library,或者使用...

    读取excel文件到高级表格易语言源码

    在读取Excel文件时,首先需要使用“打开文件”命令来获取文件句柄,然后通过“读取文件”命令读取文件内容。 3. Excel文件格式:Excel文件通常以.xlsx或.xls格式存储,这些文件实际上是ZIP压缩包,包含XML格式的...

    android读取Excel文件

    在Android平台上,读取Excel文件是一项常见的需求,特别是在处理数据导入导出或者数据分析的应用中。Excel文件通常包含多个工作表,每个工作表又由多行多列的数据组成,因此,理解如何在Android环境下操作Excel文件...

Global site tag (gtag.js) - Google Analytics