excel读写

	public static String read(String txtName, String apiName) {
		txtName = "E:/Diff/" + txtName + ".xls";
		// 绝对路径或相对路径都可以,这里是绝对路径,写入文件时演示相对路径
		File filename = new File(txtName);
		if (!filename.exists()) {
			return "";
		}
		String json = "";
		// 创建输入流,读取Excel
		// InputStream is = new FileInputStream(filename.getAbsolutePath());
		// jxl提供的Workbook类
		Workbook wb = null;
		try {
			wb = Workbook.getWorkbook(filename);
		} catch (BiffException | IOException e) {
			e.printStackTrace();
		}
		// 只有一个sheet,直接处理
		// 创建一个Sheet对象
		Sheet sheet = wb.getSheet(0);
		// 得到所有的行数
		int rows = sheet.getRows();
		// 越过第一行 它是列名称
		for (int j = 1; j < rows; j++) {
			// 得到每一行的单元格的数据
			Cell[] cells = sheet.getRow(j);
			if (cells[2].getContents().equals("") || cells.length < 3) {
				continue;
			}
			if (cells[1].getContents().equals(apiName)) {
				json = cells[2].getContents();
				break;
			}
		}
		return json;
	}

	public static void write(String txtName, String apiName, String content) {
		WritableWorkbook wwb;
		String path = "E:/Diff/";
		new File(path).mkdirs();
		txtName = path + txtName + ".xls";
		File writename = new File(txtName);
		// 相对路径,如果没有则要建立一个新的txt文件
		try {
			boolean flag = writename.createNewFile();
			// 创建输入流,读取Excel
			InputStream is = new FileInputStream(writename);
			// 创建一个Sheet对象
			if (flag) {
				OutputStream os = new FileOutputStream(writename);
				// 创建一个可写的Workbook
				wwb = Workbook.createWorkbook(os);
				// 创建一个可写的sheet,第一个参数是名字,第二个参数是第几个sheet
				WritableSheet sheet = wwb.createSheet(txtName, 0);
				sheet.addCell(new Label(0, 0, "Id"));
				sheet.addCell(new Label(1, 0, "ApiName"));
				sheet.addCell(new Label(2, 0, "Response"));
				wwb.write();
				wwb.close();
				if (os != null) {
					os.close();
				}
			}
			// jxl提供的Workbook类
			Workbook wb = Workbook.getWorkbook(is);
			wwb = Workbook.createWorkbook(writename, wb);
			WritableSheet sheet = wwb.getSheet(0);
			// 得到所有的行数
			int rows = sheet.getRows();
			// 越过第一行 它是列名称
			for (int j = 0; j < rows; j++) {
				// 得到每一行的单元格的数据
				Cell[] cells = sheet.getRow(j);
				if (cells[2].getContents().equals("") || cells.length < 3) {
					continue;
				}
				if (cells[1].getContents().equals(apiName)) {
					sheet.addCell(new Label(0, j, j + ""));
					sheet.addCell(new Label(2, j, content));
					break;
				}
				if (j == rows - 1) {
					sheet.addCell(new Label(0, rows, (j + 1) + ""));
					sheet.addCell(new Label(1, rows, apiName));
					sheet.addCell(new Label(2, rows, content));
				}
			}
			wwb.write();
			wwb.close();
			if (is != null) {
				is.close();
			}
		} catch (WriteException | BiffException | IndexOutOfBoundsException | IOException e) {
			e.printStackTrace();
		}
	}

猜你喜欢

转载自blog.csdn.net/wuyepiaoxue789/article/details/85050288
今日推荐