Java中excel表格转成json的的实现方法
本篇文章主要介绍了Java实现excel表格转成json的方法,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
今天有个朋友问我,有没有excel表格到处json的方法,在网上找到了好几个工具,都不太理想,于是根据自己的需求,自己写了一个工具。
功能代码
package org.duang.test; import java.io.File; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; import net.sf.json.JSONArray; import org.apache.poi.ss.usermodel.Cell; import org.apache.poi.ss.usermodel.DateUtil; import org.apache.poi.ss.usermodel.FormulaEvaluator; import org.apache.poi.ss.usermodel.Row; import org.apache.poi.ss.usermodel.Sheet; import org.apache.poi.ss.usermodel.Workbook; import org.apache.poi.ss.usermodel.WorkbookFactory; /** * excel表格转成json * @ClassName: Excel2JSONHelper * @Description:TODO(这里用一句话描述这个类的作用) * @author LiYonghui * @date 2017年1月6日 下午4:42:43 */ public class Excel2JSONHelper { //常亮,用作第一种模板类型,如下图 private static final int HEADER_VALUE_TYPE_Z=1; //第二种模板类型,如下图 private static final int HEADER_VALUE_TYPE_S=2; public static void main(String[] args) { File dir = new File("e:\\2003.xls"); Excel2JSONHelper excelHelper = getExcel2JSONHelper(); //dir文件,0代表是第一行为保存到数据库或者实体类的表头,一般为英文的字符串,2代表是第二种模板, JSONArray jsonArray = excelHelper.readExcle(dir, 0, 2); System.out.println(jsonArray.toString());; } /** * * 获取一个实例 */ private static Excel2JSONHelper getExcel2JSONHelper(){ return new Excel2JSONHelper(); } /** * 文件过滤 * @Title: fileNameFileter * @Description: TODO(这里用一句话描述这个方法的作用) * @param: * @author LiYonghui * @date 2017年1月6日 下午4:45:42 * @return: void * @throws */ private boolean fileNameFileter(File file){ boolean endsWith = false; if(file != null){ String fileName = file.getName(); endsWith = fileName.endsWith(".xls") || fileName.endsWith(".xlsx"); } return endsWith; } /** * 获取表头行 * @Title: getHeaderRow * @Description: TODO(这里用一句话描述这个方法的作用) * @param: @param sheet * @param: @param index * @param: @return * @author LiYonghui * @date 2017年1月6日 下午5:05:24 * @return: Row * @throws */ private Row getHeaderRow(Sheet sheet, int index){ Row headerRow = null; if(sheet!=null){ headerRow = sheet.getRow(index); } return headerRow; } /** * 获取表格中单元格的value * @Title: getCellValue * @Description: TODO(这里用一句话描述这个方法的作用) * @param: @param row * @param: @param cellIndex * @param: @param formula * @param: @return * @author LiYonghui * @date 2017年1月6日 下午5:40:28 * @return: Object * @throws */ private Object getCellValue(Row row,int cellIndex,FormulaEvaluator formula){ Cell cell = row.getCell(cellIndex); if(cell != null){ switch (cell.getCellType()) { //String类型 case Cell.CELL_TYPE_STRING: return cell.getRichStringCellValue().getString(); //number类型 case Cell.CELL_TYPE_NUMERIC: if (DateUtil.isCellDateFormatted(cell)) { return cell.getDateCellValue().getTime(); } else { return cell.getNumericCellValue(); } //boolean类型 case Cell.CELL_TYPE_BOOLEAN: return cell.getBooleanCellValue(); //公式 case Cell.CELL_TYPE_FORMULA: return formula.evaluate(cell).getNumberValue(); default: return null; } } return null; } /** * 获取表头value * @Title: getHeaderCellValue * @Description: TODO(这里用一句话描述这个方法的作用) * @param: @param headerRow * @param: @param cellIndex 英文表头所在的行,从0开始计算哦 * @param: @param type 表头的类型第一种 姓名(name)英文于实体类或者数据库中的变量一致 * @param: @return * @author LiYonghui * @date 2017年1月6日 下午6:12:21 * @return: String * @throws */ private String getHeaderCellValue(Row headerRow,int cellIndex,int type){ Cell cell = headerRow.getCell(cellIndex); String headerValue = null; if(cell != null){ //第一种模板类型 if(type == HEADER_VALUE_TYPE_Z){ headerValue = cell.getRichStringCellValue().getString(); int l_bracket = headerValue.indexOf("("); int r_bracket = headerValue.indexOf(")"); if(l_bracket == -1){ l_bracket = headerValue.indexOf("("); } if(r_bracket == -1){ r_bracket = headerValue.indexOf(")"); } headerValue = headerValue.substring(l_bracket+1, r_bracket); }else if(type == HEADER_VALUE_TYPE_S){ //第二种模板类型 headerValue = cell.getRichStringCellValue().getString(); } } return headerValue; } /** * 读取excel表格 * @Title: readExcle * @Description: TODO(这里用一句话描述这个方法的作用) * @param: @param file * @param: @param headerIndex * @param: @param headType 表头的类型第一种 姓名(name)英文于实体类或者数据库中的变量一致 * @author LiYonghui * @date 2017年1月6日 下午6:13:27 * @return: void * @throws */ public JSONArray readExcle(File file,int headerIndex,int headType){ List<Map<String, Object>> lists = new ArrayList<Map<String, Object>>(); if(!fileNameFileter(file)){ return null; }else{ try { //加载excel表格 WorkbookFactory wbFactory = new WorkbookFactory(); Workbook wb = wbFactory.create(file); //读取第一个sheet页 Sheet sheet = wb.getSheetAt(0); //读取表头行 Row headerRow = getHeaderRow(sheet, headerIndex); //读取数据 FormulaEvaluator formula = wb.getCreationHelper().createFormulaEvaluator(); for(int r = headerIndex+1; r<= sheet.getLastRowNum();r++){ Row dataRow = sheet.getRow(r); Map<String, Object> map = new HashMap<String, Object>(); for(int h = 0; h<dataRow.getLastCellNum();h++){ //表头为key String key = getHeaderCellValue(headerRow,h,headType); //数据为value Object value = getCellValue(dataRow, h, formula); if(!key.equals("") && !key.equals("null") && key != null ){ map.put(key, value); } } lists.add(map); } } catch (Exception e) { e.printStackTrace(); } } JSONArray jsonArray = JSONArray.fromObject(lists); return jsonArray; } }
excel表格模板类型和调用方式
第一种 :用括号把实体类变量名称或者数据库字段名称括起来
调用方法如下:
//表格的名称为2003.xls File file= new File("e:\\2003.xls"); Excel2JSONHelper excelHelper = getExcel2JSONHelper(); //字母表头为在第1行,第1种模板类型 JSONArray jsonArray = excelHelper.readExcle(file, 1, 1);
第二种: 实体类变量名称或者数据库字段另起一行,如下两张图都行
调用方法如下:
//表格的名称为2003.xls File file= new File("e:\\2003.xls"); Excel2JSONHelper excelHelper = getExcel2JSONHelper(); //字母表头为在第1行,第2种模板类型 JSONArray jsonArray = excelHelper.readExcle(file, 1, 2);
//表格的名称为2003.xls File file= new File("e:\\2003.xls"); Excel2JSONHelper excelHelper = getExcel2JSONHelper(); //字母表头为在第2行,第2种模板类型 JSONArray jsonArray = excelHelper.readExcle(file, 2, 2);
jsonArray打印的结果
复制代码 代码如下:
[{"index":"1","name":"李逵","jobNum":"10004","dept":"开发部","job":"android工程师"}, {"index":"2","name":"宋江","jobNum":"10001","dept":"总裁办","job":"总裁"}]
Atas ialah kandungan terperinci Java中excel表格转成json的的实现方法. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Alat AI Hot

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool
Gambar buka pakaian secara percuma

Clothoff.io
Penyingkiran pakaian AI

AI Hentai Generator
Menjana ai hentai secara percuma.

Artikel Panas

Alat panas

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6
Alat pembangunan web visual

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Topik panas

Excel sering digunakan untuk memproses data dalam kerja pejabat harian, dan selalunya perlu menggunakan fungsi "penapis". Apabila kami memilih untuk melakukan "penapisan" dalam Excel, kami hanya boleh menapis sehingga dua syarat untuk lajur yang sama Jadi, adakah anda tahu cara menapis lebih daripada 3 kata kunci pada masa yang sama dalam Excel? Seterusnya, izinkan saya menunjukkannya kepada anda. Kaedah pertama ialah menambah keadaan secara beransur-ansur pada penapis. Jika anda ingin menapis tiga butiran kelayakan pada masa yang sama, anda perlu menapis satu daripadanya langkah demi langkah terlebih dahulu. Pada mulanya, anda boleh menapis terlebih dahulu pekerja dengan nama keluarga "Wang" berdasarkan syarat. Kemudian klik [OK], dan kemudian tandakan [Tambah pilihan semasa untuk penapis] dalam hasil penapis. Langkah-langkahnya adalah seperti berikut. Begitu juga, lakukan penapisan secara berasingan sekali lagi

Jika semasa membuka fail yang perlu dicetak, kami akan mendapati bahawa garis bingkai jadual telah hilang atas sebab tertentu dalam pratonton cetak Apabila menghadapi situasi sedemikian, kami mesti menanganinya dalam masa Jika ini juga muncul dalam cetakan anda fail Jika anda mempunyai soalan seperti ini, kemudian sertai editor untuk mempelajari kursus berikut: Apakah yang perlu saya lakukan jika garis bingkai hilang semasa mencetak jadual dalam Excel? 1. Buka fail yang perlu dicetak, seperti yang ditunjukkan dalam rajah di bawah. 2. Pilih semua kawasan kandungan yang diperlukan, seperti yang ditunjukkan dalam rajah di bawah. 3. Klik kanan tetikus dan pilih pilihan "Format Sel", seperti yang ditunjukkan dalam rajah di bawah. 4. Klik pilihan "Sempadan" di bahagian atas tetingkap, seperti yang ditunjukkan dalam rajah di bawah. 5. Pilih corak garisan pepejal nipis dalam gaya garisan di sebelah kiri, seperti yang ditunjukkan dalam rajah di bawah. 6. Pilih "Sempadan Luar"

Dalam kerja dan kajian harian kami, kami menyalin fail Excel daripada orang lain, membukanya untuk menambah kandungan atau mengeditnya semula, dan kemudian menyimpannya Kadangkala kotak dialog semak keserasian akan muncul, yang sangat menyusahkan perisian, bolehkah ia ditukar kepada mod biasa? Jadi di bawah, editor akan membawakan anda langkah terperinci untuk menyelesaikan masalah ini, mari kita belajar bersama. Akhir sekali, pastikan anda ingat untuk menyimpannya. 1. Buka lembaran kerja dan paparkan mod keserasian tambahan dalam nama lembaran kerja, seperti yang ditunjukkan dalam rajah. 2. Dalam lembaran kerja ini, selepas mengubah suai kandungan dan menyimpannya, kotak dialog penyemak keserasian sentiasa muncul. Sangat menyusahkan untuk melihat halaman ini, seperti yang ditunjukkan dalam rajah. 3. Klik butang Pejabat, klik Simpan Sebagai, dan kemudian

Dalam kajian perisian, kami terbiasa menggunakan excel, bukan sahaja kerana ia mudah, tetapi juga kerana ia dapat memenuhi pelbagai format yang diperlukan dalam kerja sebenar, dan excel sangat fleksibel untuk digunakan, dan terdapat mod yang mudah untuk membaca Hari ini saya bawa Untuk semua orang: di mana untuk menetapkan mod bacaan excel. 1. Hidupkan komputer, kemudian buka aplikasi Excel dan cari data sasaran. 2. Terdapat dua cara untuk menetapkan mod bacaan dalam Excel. Yang pertama: Dalam Excel, terdapat sejumlah besar kaedah pemprosesan yang mudah diedarkan dalam susun atur Excel. Di sudut kanan bawah Excel, terdapat pintasan untuk menetapkan mod bacaan Cari corak tanda pangkah dan kliknya untuk memasuki mod bacaan Terdapat tanda tiga dimensi kecil di sebelah kanan tanda pangkah .

Kebanyakan pengguna menggunakan Excel untuk memproses data jadual Malah, Excel juga mempunyai program VBA fungsi fungsi adalah serupa. Biar saya perkenalkan kepada anda penggunaan fungsi iif. Terdapat fungsi iif dalam pernyataan SQL dan kod VBA dalam Excel. Fungsi iif adalah serupa dengan fungsi IF dalam lembaran kerja excel Ia melakukan pertimbangan nilai benar dan salah dan mengembalikan hasil yang berbeza berdasarkan nilai benar dan salah yang dikira secara logik. JIKA penggunaan fungsi adalah (syarat, ya, tidak). Penyataan IF dan fungsi IIF dalam VBA Penyataan IF dahulu ialah penyataan kawalan yang boleh melaksanakan penyataan yang berbeza mengikut syarat yang terakhir

Cara membaca data excel dalam html: 1. Gunakan perpustakaan JavaScript untuk membaca data Excel 2. Gunakan bahasa pengaturcaraan bahagian pelayan untuk membaca data Excel;

1. Buka PPT dan putar halaman ke halaman di mana anda perlu memasukkan ikon excel. Klik tab Sisipkan. 2. Klik [Objek]. 3. Kotak dialog berikut akan muncul. 4. Klik [Buat daripada fail] dan klik [Semak imbas]. 5. Pilih jadual excel yang hendak disisipkan. 6. Klik OK dan halaman berikut akan muncul. 7. Tandakan [Show as icon]. 8. Klik OK.

Hello, semua, hari ini saya di sini untuk berkongsi tutorial dengan anda sekali lagi. Adakah anda tahu cara membuka nombor akar dalam hamparan Excel? Kadangkala, kita sering menggunakan tanda akar apabila menggunakan jadual Excel. Bagi veteran, membuka akaun akar adalah sesuatu yang sukar, tetapi bagi pelajar baru, membuka akaun akar dalam Excel adalah sukar. Hari ini, kita akan bercakap secara terperinci tentang cara membuka nombor akar dalam Excel. Kelas ini sangat berharga, pelajar, sila dengar dengan teliti. Langkah-langkahnya adalah seperti berikut: 1. Mula-mula, kita buka jadual Excel pada komputer kemudian, kita buat buku kerja baharu. 2. Seterusnya, masukkan kandungan berikut dalam lembaran kerja kosong kami. (Seperti yang ditunjukkan dalam gambar) 3. Seterusnya, kita klik [Insert Function] pada [Toolbar]
