亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 開發 > Java > 正文

Java寫入寫出Excel操作源碼分享

2024-07-13 10:14:46
字體:
來源:轉載
供稿:網友

這兩天幫老師做一個數據庫,將所有實驗交易的數據導入到數據庫中,但是不想天天在實驗室里面待著,氣氛太壓抑,就想著先把數據讀進EXCEL中,哪天帶到實驗室導進去

數據原來是這樣的,不同的實驗有一個專門的文件夾,實驗名的文件夾下有不同班級的文件夾,班級文件夾下有該班級日期文件夾,存儲的是不同時間下該班做實驗的數據EXCEL,原來的EXCEL中沒有班級和時間,現在需要通過讀取EXCEL名以及班級名來將該信息作為一列,加入到EXCEL中。

下面是源代碼,嘿嘿,順便還做了一個可視化窗口。

類ExcelRead:

import java.awt.List;import java.io.ByteArrayOutputStream;import java.io.File;import java.io.FileInputStream;import java.io.FileOutputStream;import java.io.IOException;import java.io.OutputStream;import java.text.DecimalFormat;import java.text.SimpleDateFormat;import java.util.ArrayList;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.xssf.usermodel.XSSFCell;import org.apache.poi.xssf.usermodel.XSSFRow;import org.apache.poi.xssf.usermodel.XSSFSheet;import org.apache.poi.xssf.usermodel.XSSFWorkbook;public class ExcelRead {	String path;	public String getPath() {		return path;	}	public void setPath(String path) {		this.path = path;	}	//默認單元格內容為數字時格式 	private static DecimalFormat df = new DecimalFormat("0");	// 默認單元格格式化日期字符串  	private static SimpleDateFormat sdf = new SimpleDateFormat( "yyyy-MM-dd HH:mm:ss");	// 格式化數字 	private static DecimalFormat nf = new DecimalFormat("0.00");	public static ArrayList<ArrayList<Object>> readExcel(File file){		if(file == null){			return null;		}		if(file.getName().endsWith("xlsx")){			//處理ecxel2007 			return readExcel2007(file);		} else{			//處理ecxel2003 			return readExcel2003(file);		}	}	/*    * @return 將返回結果存儲在ArrayList內,存儲結構與二位數組類似    * lists.get(0).get(0)表示過去Excel中0行0列單元格    */	public static ArrayList<ArrayList<Object>> readExcel2003(File file){		try{			ArrayList<ArrayList<Object>> rowList = new ArrayList<ArrayList<Object>>();			ArrayList<Object> colList;			HSSFWorkbook wb = new HSSFWorkbook(new FileInputStream(file));			HSSFSheet sheet = wb.getSheetAt(0);			HSSFRow row;			HSSFCell cell;			Object value;			for (int i = sheet.getFirstRowNum() , rowCount = 0; rowCount < sheet.getPhysicalNumberOfRows() ; i++ ){				row = sheet.getRow(i);				colList = new ArrayList<Object>();				if(row == null){					//當讀取行為空時 					if(i != sheet.getPhysicalNumberOfRows()){						//判斷是否是最后一行 						rowList.add(colList);					}					continue;				} else{					rowCount++;				}				for ( int j = row.getFirstCellNum() ; j <= row.getLastCellNum() ;j++){					cell = row.getCell(j);					if(cell == null || cell.getCellType() == HSSFCell.CELL_TYPE_BLANK){						//當該單元格為空 						if(j != row.getLastCellNum()){							//判斷是否是該行中最后一個單元格 							colList.add("");						}						continue;					}					switch(cell.getCellType()){						case XSSFCell.CELL_TYPE_STRING:  						            //System.out.println(i + "行" + j + " 列 is String type");  						value = cell.getStringCellValue();						break;						case XSSFCell.CELL_TYPE_NUMERIC:  						            if ("@".equals(cell.getCellStyle().getDataFormatString())) {							value = df.format(cell.getNumericCellValue());						} else if ("General".equals(cell.getCellStyle()  						                .getDataFormatString())) {							value = nf.format(cell.getNumericCellValue());						} else {							value = sdf.format(HSSFDateUtil.getJavaDate(cell  							                  .getNumericCellValue()));						}						//                System.out.println(i + "行" + j  						//                    + " 列 is Number type ; DateFormt:"  						//                    + value.toString());  						break;						case XSSFCell.CELL_TYPE_BOOLEAN:  						            //System.out.println(i + "行" + j + " 列 is Boolean type");  						value = Boolean.valueOf(cell.getBooleanCellValue());						break;						case XSSFCell.CELL_TYPE_BLANK:  						            //System.out.println(i + "行" + j + " 列 is Blank type");  						value = "";						break;						default:  						            //System.out.println(i + "行" + j + " 列 is default type");  						value = cell.toString();					}					// end switch 					colList.add(value);				}				//end for j 				rowList.add(colList);			}			//end for i 			return rowList;		}		catch(Exception e){			return null;		}	}	public static ArrayList<ArrayList<Object>> readExcel2007(File file){		try{			ArrayList<ArrayList<Object>> rowList = new ArrayList<ArrayList<Object>>();			ArrayList<Object> colList;			XSSFWorkbook wb = new XSSFWorkbook(new FileInputStream(file));			XSSFSheet sheet = wb.getSheetAt(0);			XSSFRow row;			XSSFCell cell;			Object value;			for (int i = sheet.getFirstRowNum() , rowCount = 0; rowCount < sheet.getPhysicalNumberOfRows() ; i++ ){				row = sheet.getRow(i);				colList = new ArrayList<Object>();				if(row == null){					//當讀取行為空時 					if(i != sheet.getPhysicalNumberOfRows()){						//判斷是否是最后一行 						rowList.add(colList);					}					continue;				} else{					rowCount++;				}				for ( int j = row.getFirstCellNum() ; j <= row.getLastCellNum() ;j++){					cell = row.getCell(j);					if(cell == null || cell.getCellType() == HSSFCell.CELL_TYPE_BLANK){						//當該單元格為空 						if(j != row.getLastCellNum()){							//判斷是否是該行中最后一個單元格 							colList.add("");						}						continue;					}					switch(cell.getCellType()){						case XSSFCell.CELL_TYPE_STRING:  						            //System.out.println(i + "行" + j + " 列 is String type");  						value = cell.getStringCellValue();						break;						case XSSFCell.CELL_TYPE_NUMERIC:  						            if ("@".equals(cell.getCellStyle().getDataFormatString())) {							value = df.format(cell.getNumericCellValue());						} else if ("General".equals(cell.getCellStyle()  						                .getDataFormatString())) {							value = nf.format(cell.getNumericCellValue());						} else {							value = sdf.format(HSSFDateUtil.getJavaDate(cell  							                  .getNumericCellValue()));						}						//                System.out.println(i + "行" + j  						//                    + " 列 is Number type ; DateFormt:"  						//                    + value.toString());  						break;						case XSSFCell.CELL_TYPE_BOOLEAN:  						            //System.out.println(i + "行" + j + " 列 is Boolean type");  						value = Boolean.valueOf(cell.getBooleanCellValue());						break;						case XSSFCell.CELL_TYPE_BLANK:  						            //System.out.println(i + "行" + j + " 列 is Blank type");  						value = "";						break;						default:  						            //System.out.println(i + "行" + j + " 列 is default type");  						value = cell.toString();					}					// end switch 					colList.add(value);				}				//end for j 				rowList.add(colList);			}			//end for i 			return rowList;		}		catch(Exception e){			System.out.println("exception");			return null;		}	}	public static ArrayList getFiles(String filePath){		File root = new File(filePath);		File[]files = root.listFiles();		ArrayList filelist = new ArrayList();		for (File file:files){			if(file.isDirectory()){				filelist.addAll(getFiles(file.getAbsolutePath()));			} else{				String newpath = file.getAbsolutePath();				if(newpath.contains("交易記錄")){					filelist.add(newpath);				}			}		}		return filelist;	}	public void readBook(String path3) {		String filePath = path3;		ArrayList filelist = getFiles(filePath);		ArrayList<ArrayList>resultAll = new ArrayList<ArrayList>();		for (int i = 0;i<filelist.size();i++){			String path = (String) filelist.get(i);			System.out.println(path);			ArrayList<ArrayList>result = Graph(path);			String[] path2 = path.split("////");			int num = result.get(0).size();			ArrayList result2 = new ArrayList();			for (int j = 0;j<num;j++){				result2.add(path2[path2.length-2]);			}			ArrayList result3 = new ArrayList();			for (int j = 0;j<num;j++){				result3.add(path2[path2.length-3]);			}			result.add(result2);			result.add(result3);			if(resultAll.size()==0){				resultAll = result;			} else{				for (int j = 0;j<result.size();j++){					for (int k = 0;k<result.get(j).size();k++){						resultAll.get(j).add(result.get(j).get(k));					}				}			}		}		writeExcel(resultAll,"D:/a.xls");	}	public static void writeExcel(ArrayList<ArrayList> result,String path){		if(result == null){			return;		}		HSSFWorkbook wb = new HSSFWorkbook();		HSSFSheet sheet = wb.createSheet("sheet1");		for (int i = 0 ;i < result.get(0).size() ; i++){			HSSFRow row = sheet.createRow(i);			for (int j = 0; j < result.size() ; j ++){				HSSFCell cell = row.createCell((short)j);				cell.setCellValue(result.get(j).get(i).toString());			}		}		ByteArrayOutputStream os = new ByteArrayOutputStream();		try 		    {			wb.write(os);		}		catch (IOException e){			e.printStackTrace();		}		byte[] content = os.toByteArray();		File file = new File(path);		//Excel文件生成后存儲的位置。 		OutputStream fos = null;		try 		    {			fos = new FileOutputStream(file);			wb.write(fos);			os.close();			fos.close();		}		catch (Exception e){			e.printStackTrace();		}	}	public static DecimalFormat getDf() {		return df;	}	public static void setDf(DecimalFormat df) {		ExcelRead.df = df;	}	public static SimpleDateFormat getSdf() {		return sdf;	}	public static void setSdf(SimpleDateFormat sdf) {		ExcelRead.sdf = sdf;	}	public static DecimalFormat getNf() {		return nf;	}	public static void setNf(DecimalFormat nf) {		ExcelRead.nf = nf;	}	public static ArrayList<ArrayList> Graph(String path){		File file = new File(path);		ArrayList<ArrayList<Object>> result = ExcelRead.readExcel(file);		ArrayList<double>price = new ArrayList<double>();		//價格序列		ArrayList<String>time = new ArrayList<String>();		//時間序列		ArrayList<String>buyList = new ArrayList<String>();		//買方序列		ArrayList<String>sellList = new ArrayList<String>();		//賣方序列		ArrayList<double>vol = new ArrayList<double>();		//成交量		ArrayList<String>Share = new ArrayList<String>();		//股票名字		ArrayList<String>id = new ArrayList<String>();		ArrayList<String>Shareid = new ArrayList<String>();		for (int i = 2 ;i < result.size() ;i++){			for (int j = 0;j<result.get(i).size(); j++){				//第5列表示價格,第8列表示時間				if(j==0){					String temp = (String) result.get(i).get(j);					id.add(temp);				}				if(j==3){					String temp = (String) result.get(i).get(j);					Shareid.add(temp);				}				if(j==5){					//price.add((String) result.get(i).get(j));					String temp = (String) result.get(i).get(j);					String[] units = temp.split("¥");					price.add(double.valueOf(units[1]));				}				if(j==7){					String temp = (String) result.get(i).get(j);					time.add(temp);					//         time.add((String) result.get(i).get(j));				}				if(j==1){					buyList.add((String) result.get(i).get(j));				}				if(j==2){					sellList.add((String) result.get(i).get(j));				}				if(j==6){					vol.add(double.valueOf((String)result.get(i).get(j)));				}				if(j==4){					Share.add((String)result.get(i).get(j));				}			}		}		ArrayList<ArrayList>resultList = new ArrayList<ArrayList>();		resultList.add(Shareid);		resultList.add(id);		resultList.add(buyList);		resultList.add(sellList);		resultList.add(Share);		resultList.add(price);		resultList.add(vol);		resultList.add(time);		return resultList;	}}

readExcelBook(做可視化窗口的):

import java.awt.EventQueue;import javax.swing.JFileChooser;import javax.swing.JFrame;import javax.swing.GroupLayout;import javax.swing.JLabel;import javax.swing.GroupLayout.Alignment;import javax.swing.JButton;import javax.swing.JTextField;import java.awt.event.ActionListener;import java.awt.event.ActionEvent;import java.io.File;public class readExcelBook {	private JFrame frame;	private JTextField textField;	/**   * Launch the application.   */	public static void main(String[] args) {		EventQueue.invokeLater(new Runnable() {			public void run() {				try {					readExcelBook window = new readExcelBook();					window.frame.setVisible(true);				}				catch (Exception e) {					e.printStackTrace();				}			}		}		);	}	/**   * Create the application.   */	public readExcelBook() {		initialize();	}	/**   * Initialize the contents of the frame.   */	private void initialize() {		frame = new JFrame();		frame.setBounds(100, 100, 450, 300);		frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);		JButton button = new JButton("/u9009/u62E9/u6587/u4EF6");		button.addActionListener(new ActionListener() {			public void actionPerformed(ActionEvent e) {				JFileChooser jfc=new JFileChooser();				jfc.setFileSelectionMode(JFileChooser.FILES_AND_DIRECTORIES );				jfc.showDialog(new JLabel(), "選擇");				File file=jfc.getSelectedFile();				String path = file.getAbsolutePath();				textField.setText(path);				ExcelRead er = new ExcelRead();				er.readBook(path);			}		}		);		textField = new JTextField();		textField.setColumns(10);		JLabel lbldaxls = new JLabel("/u5199/u5165/u4E86D/u76D8/u4E0B/u7684a.xls/u54C8");		GroupLayout groupLayout = new GroupLayout(frame.getContentPane());		groupLayout.setHorizontalGroup(		      groupLayout.createParallelGroup(Alignment.LEADING)		        .addGroup(groupLayout.createSequentialGroup()		          .addGap(26)		          .addGroup(groupLayout.createParallelGroup(Alignment.LEADING)		            .addComponent(lbldaxls)		            .addComponent(textField, GroupLayout.PREFERRED_SIZE, 295, GroupLayout.PREFERRED_SIZE)		            .addComponent(button))		          .addContainerGap(113, short.MAX_VALUE))		    );		groupLayout.setVerticalGroup(		      groupLayout.createParallelGroup(Alignment.LEADING)		        .addGroup(groupLayout.createSequentialGroup()		          .addGap(31)		          .addComponent(button)		          .addGap(18)		          .addComponent(textField, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE)		          .addGap(35)		          .addComponent(lbldaxls)		          .addContainerGap(119, short.MAX_VALUE))		    );		frame.getContentPane().setLayout(groupLayout);	}}

運行結果:

java,訪問,excel,源碼

總結

以上就是本文關于Java寫入寫出Excel操作源碼分享的全部內容,希望對大家有所幫助。感興趣的朋友可以繼續參閱本站Java相關專題,如有不足之處,歡迎留言指出。感謝朋友們對本站的支持!


注:相關教程知識閱讀請移步到JAVA教程頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
亚洲影院在线看| 久久免费视频观看| 久久影视电视剧凤归四时歌| 色系列之999| 亚洲第一精品福利| 亚洲影院色在线观看免费| 日韩精品视频中文在线观看| 国产手机视频精品| 91香蕉电影院| 黑人巨大精品欧美一区二区| 欧美成人免费一级人片100| 日韩精品中文字幕有码专区| 亚洲人精选亚洲人成在线| 亚洲天堂精品在线| 91精品视频在线看| 日韩精品免费在线播放| 中文字幕无线精品亚洲乱码一区| 91在线观看免费观看| 国产精品91久久久| 亚洲va国产va天堂va久久| 欧美电影免费在线观看| 日本一区二区三区在线播放| 国产成人精品视频在线观看| 欧美重口另类videos人妖| 91老司机精品视频| 北条麻妃99精品青青久久| 日韩国产中文字幕| 亚洲精品有码在线| 精品久久香蕉国产线看观看gif| 色多多国产成人永久免费网站| 欧美精品一区二区三区国产精品| 国产精品国产三级国产专播精品人| 日韩一级黄色av| 青青a在线精品免费观看| 51视频国产精品一区二区| 久久亚洲精品一区| 68精品国产免费久久久久久婷婷| 91精品国产一区| 黑人精品xxx一区一二区| 91久久在线观看| 国产精品入口福利| 久久国产精品久久久| 欧美成人免费va影院高清| 中文字幕亚洲欧美一区二区三区| 91精品久久久久久久久久入口| 国产日韩在线看片| 欧美国产日韩视频| 81精品国产乱码久久久久久| 亚洲国产精品久久| 在线观看国产成人av片| 欧美极品少妇xxxxⅹ裸体艺术| 欧美一区二区三区图| 亚洲精品一区久久久久久| 亚洲欧美一区二区精品久久久| 久久精品国产亚洲7777| 欧美一级片免费在线| 久久91精品国产91久久跳| 九九九热精品免费视频观看网站| 欧美性生活大片免费观看网址| 91亚洲国产成人精品性色| 亚洲精品美女在线观看播放| 91精品国产99| 日韩最新中文字幕电影免费看| 在线观看视频亚洲| 亚洲精品720p| 91免费高清视频| 久久久噜噜噜久久中文字免| 亚洲天堂av在线免费| 精品在线欧美视频| 国产偷亚洲偷欧美偷精品| 国产精品对白刺激| 91系列在线播放| 亚洲欧美日韩在线一区| 精品久久中文字幕| 欧美激情精品久久久久久大尺度| 成人写真视频福利网| 91在线无精精品一区二区| 日韩精品在线免费观看| 中文字幕亚洲综合久久| 欧洲亚洲在线视频| 亚洲免费小视频| 亚洲精品乱码久久久久久按摩观| 久久成人人人人精品欧| 亚洲自拍偷拍色片视频| 91沈先生作品| 国产福利精品av综合导导航| 日韩电影免费观看中文字幕| 97在线视频免费观看| 欧美日韩国产色| 国产女精品视频网站免费| 亚洲成人在线网| 国产精品老女人精品视频| zzjj国产精品一区二区| 久久全国免费视频| 95av在线视频| 亚洲一区亚洲二区| 国产精品日韩欧美| 日韩中文字幕网| 国产精品久久久av| 欧美性在线视频| 久久国产精彩视频| 中文字幕国产精品久久| 国模精品视频一区二区| 亚洲天堂av高清| 中日韩美女免费视频网站在线观看| 亚洲精品福利视频| 亚洲天堂av在线免费| 亚洲国产成人久久综合| 久久91精品国产91久久久| 久久久久一本一区二区青青蜜月| 插插插亚洲综合网| 这里只有精品在线播放| 国产成人拍精品视频午夜网站| 亚洲视频在线播放| 91久久精品国产| 欧美性生交xxxxxdddd| 国产日产久久高清欧美一区| 欧美怡春院一区二区三区| 日韩av免费看| 精品国产一区久久久| 日本精品视频在线观看| 在线播放国产精品| 亚洲国产天堂久久综合网| 国产精品欧美风情| 国产精品国产福利国产秒拍| 欧美激情亚洲激情| www.国产一区| 日韩小视频在线观看| 日本午夜精品理论片a级appf发布| 国产在线视频91| 青青草国产精品一区二区| 青青久久av北条麻妃黑人| 国产偷亚洲偷欧美偷精品| 欧美激情综合亚洲一二区| 成人福利在线视频| 国产视频精品久久久| 国产91网红主播在线观看| 国产精品扒开腿做| 成人久久久久久| 国产精品高潮呻吟久久av黑人| 亚洲精品理论电影| 92福利视频午夜1000合集在线观看| 91精品国产乱码久久久久久蜜臀| 久久国产精品99国产精| 欧美午夜片在线免费观看| 亚洲天堂2020| 精品久久香蕉国产线看观看亚洲| 亚洲区中文字幕| 伊人成人开心激情综合网| 91精品综合久久久久久五月天| 一本大道香蕉久在线播放29| 91成人精品网站| 久久久久久久成人| 成人日韩在线电影| 国产v综合v亚洲欧美久久| 成人激情综合网| 国产精品人成电影| 欧美精品免费在线观看| 久久久久久久久久久久久久久久久久av| 欧美成人精品在线视频| 国产亚洲欧美另类中文| 狠狠躁夜夜躁人人爽天天天天97| 欧美国产乱视频| 国产性色av一区二区|