java之excel 转 json

该类在原本转载的基础上加了注释和文件过滤功能,需要用到包:

commons-io-2.0.1.jar  
fastjson-1.1.32.jar     下载地址:http://download.csdn.net/detail/qingfoo/7351129

jxl.jar 

import jxl.Cell;
import jxl.Sheet;
import jxl.Workbook;
import jxl.read.biff.BiffException;

import org.apache.commons.io.FileUtils;

import com.alibaba.fastjson.JSONObject;

public class ExcelToJson {

	public static void main(String[] args) {
		// d盘下的xls目录
		File dir = new File("D:\\xls");
		// 用于文件过滤
		FilenameFilter searchSuffix = new FilenameFilter() {
			@Override
			public boolean accept(File dir, String name) {
				return name.endsWith(".xls");
			}
		};
		// 获取xls目录下的所有文件列表
		File[] list = dir.listFiles();
		for (File file : list) {
			File dest = new File("E:\\json_"
					+ file.getName().substring(0,
							file.getName().lastIndexOf(".")) + ".json");
			if (dest.exists()) {
				dest.delete();
			}
			// 获取xls目录下的文件名
			String fileName = file.getName();
			// 获取文件后缀
			String suffix = fileName.substring(fileName.lastIndexOf("."));
			// 如果不是以xls为结尾的文件跳过
			if (!searchSuffix.accept(file, suffix)) {
				continue;
			}
			try {
				Workbook wb = Workbook.getWorkbook(file); // 从文件流中获取Excel工作区对象(WorkBook)
				Sheet sheet = wb.getSheet(0); // 从工作区中取得页(Sheet)
				Cell[] header = sheet.getRow(0);
				for (int i = 0; i < sheet.getRows(); i++) { // 循环打印Excel表中的内容
					Map hashMap = new HashMap();
					for (int j = 0; j < sheet.getColumns(); j++) {
						Cell cell = sheet.getCell(j, i);
						hashMap.put(header[j].getContents(), cell.getContents());
					}
					// 这个json字符串就是我们想要的,实际应用中可以直接返回该字符串
					String json = JSONObject.toJSONString(hashMap);
					// 将转换后的json字符串写到文件当中
					FileUtils.writeStringToFile(dest, json + "\n", "UTF-8");
				}
			} catch (BiffException e) {
				e.printStackTrace();
			} catch (IOException e) {
				e.printStackTrace();
			}

		}
	}
}


  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值