package com.hzp.test;
import java.io.BufferedWriter;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.FileWriter;
import java.io.IOException;
import java.io.InputStream;
import java.io.ObjectOutputStream;
import java.io.OutputStream;
import java.io.OutputStreamWriter;
import java.nio.Buffer;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Iterator;
import org.apache.poi.hssf.usermodel.HSSFCell;
import org.apache.poi.hssf.usermodel.HSSFDateUtil;
import org.apache.poi.hssf.usermodel.HSSFRow;
import org.apache.poi.hssf.usermodel.HSSFSheet;
import org.apache.poi.hssf.usermodel.HSSFWorkbook;
import org.apache.poi.ss.usermodel.Cell;
import org.apache.poi.ss.usermodel.Row;
import org.apache.poi.ss.usermodel.Workbook;
public class QQQQ {
/**
* @description: 根据excel文件生成对应的json字符串
* @return
* @throws FileNotFoundException
*/
public static String createJson() throws FileNotFoundException {
InputStream is = new FileInputStream("d://123456.XLS");
StringBuffer buffer = new StringBuffer();
try {
Workbook workbook = new HSSFWorkbook(is);
HSSFSheet sheet = (HSSFSheet) workbook.getSheetAt(0);
//创建TXT文本
FileWriter ff= new FileWriter("f://1.txt");
String key = "";
String value = "";
buffer.append("[");
for (int i = 0; i < sheet.getPhysicalNumberOfRows(); i++) {
HSSFRow row = sheet.getRow(i);
for(int j=0;j<row.getPhysicalNumberOfCells();j++){
HSSFCell cell = row.getCell(j);
//向创建的TXT文本写出xls文件中的内容
ff.write(String.valueOf(i+"---"+row.getPhysicalNumberOfCells()+" "+" "));
if(i==0){
if(j==0){
key = cell.getStringCellValue();
}
if(j==1){
value = cell.getStringCellValue();
}
} else{
if(j==0){
buffer.append("{\"" + key + "\"" + ":" + "\"" + sheet.getRow(i) + "\"" + ",");
}
if(j==0){
buffer.append("\"" + value + "\"" + ":" + "\"" + row.getCell(j) + "\"}");
}
}
}
if(sheet.getPhysicalNumberOfRows()-1!=i && i!=0){
buffer.append(",");
}
buffer.append("\r");
}
buffer.append("]");
ff.flush();
ff.close();
} catch (IOException e) {
System.out.println("出现异常");
e.printStackTrace();
}
return buffer.toString();
}
/**
* 获取当前单元格内容
* */
private static String getCellValue(Cell cell){
String value = "";
if(cell!=null){
switch (cell.getCellType()) {
case Cell.CELL_TYPE_NUMERIC:
if(HSSFDateUtil.isCellDateFormatted(cell)){ //日期类型
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
Date date = HSSFDateUtil.getJavaDate(cell.getNumericCellValue());
value = sdf.format(date);
}else{
Integer data = (int) cell.getNumericCellValue();
value = data.toString();
}
break;
case Cell.CELL_TYPE_STRING:
value = cell.getStringCellValue();
break;
case Cell.CELL_TYPE_BOOLEAN:
Boolean data = cell.getBooleanCellValue();
value = data.toString();
break;
case Cell.CELL_TYPE_ERROR:
System.out.println("单元格内容出现错误");
break;
case Cell.CELL_TYPE_FORMULA:
value = String.valueOf(cell.getNumericCellValue());
if (value.equals("NaN")) {
// 如果获取的数据值非法,就将其装换为对应的字符串
value = cell.getStringCellValue().toString();
}
break;
case Cell.CELL_TYPE_BLANK:
System.out.println("单元格内容 为空值 ");
break;
default :
value = cell.getStringCellValue().toString();
break;
}
}
return value;
}
/**
* @description: 将生成的字符串输出到一个文件中
* @param args
* @throws IOException
*/
public static void main(String[] args) throws IOException {
String str = createJson();
OutputStream os = new FileOutputStream("D://1.json");
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(os, "UTF-8"));
ObjectOutputStream oos = null;
try {
bw.write(str);
System.out.println("json文件写入完成");
} catch (IOException e) {
e.printStackTrace();
}finally{
if(bw!=null){
bw.close();
}
if(os!=null){
os.close();
}
}
}
}
qq__2888
xczzxc002
相关分类