1. 程式人生 > >JAVA向指定資料夾寫入Excel檔案

JAVA向指定資料夾寫入Excel檔案

程式如下:

package excle;


import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;

import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JTextField;

import org.
apache.poi.hssf.usermodel.HSSFCell; import org.apache.poi.hssf.usermodel.HSSFCellStyle; import org.apache.poi.hssf.usermodel.HSSFFont; import org.apache.poi.hssf.usermodel.HSSFRow; import org.apache.poi.hssf.usermodel.HSSFSheet; import org.apache.poi.hssf.usermodel.HSSFWorkbook; public class demo extends
JFrame { /** * */ private static final long serialVersionUID = 1L; static JPanel p; static JTextField jf; public static void main(String[] args) { demo frame = new demo(); frame.setSize(400, 400); frame.setLocationRelativeTo(null); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); frame.
setVisible(true); p = new JPanel(); // 建立一個面板 frame.setContentPane(p); JButton b1=new JButton("輸入文字"); b1.addActionListener(new StartButtonAction()); p.add(b1); } static class StartButtonAction implements ActionListener { @Override public void actionPerformed(ActionEvent e) { System.out.println(111); JFrame mainFrame = new JFrame("輸入文字"); mainFrame.setLayout(null); JButton jb = new JButton("提交"); jb.setBounds(660, 0, 60, 30); jb.addActionListener(new TijiaoButtonAction()); jf = new JTextField(); jf.setBounds(0, 0, 720, 30); jf.add(jb); mainFrame.add(jf); mainFrame.pack(); mainFrame.setVisible(true); mainFrame.setBounds(120, 100, 740, 100); } } static class TijiaoButtonAction implements ActionListener{ @Override public void actionPerformed(ActionEvent e) { // TODO Auto-generated method stub System.out.println(222); long currentTimeMillis = System.currentTimeMillis(); ExcelExamWrite excel = new ExcelExamWrite(); String fileName = "e:/TEXT/ExcelExamWrite"+currentTimeMillis+".xls"; excel.createExcel(fileName); } } public static class ExcelExamWrite { // 新建一個Excel檔案,裡面新增5行5列的內容,另外新增一個合併2行5列的大單元格以及一個合併2行1列的5個合併單元格。 public void createExcel(String fileName) { File file = new File(fileName);// 建立excel檔案物件 FileOutputStream fOut = null; try { // 建立一個新的HSSFWorkbook物件 HSSFWorkbook workbook = new HSSFWorkbook(); // 建立一個Excel的工作表,可以指定工作表的名字 HSSFSheet sheet = workbook.createSheet("myFirstExcel"); // 建立字型,紅色、粗體 HSSFFont font = workbook.createFont(); font.setColor(HSSFFont.COLOR_RED); font.setBoldweight(HSSFFont.BOLDWEIGHT_BOLD); HSSFFont font1 = workbook.createFont(); // 建立字型,黑色、非粗體 font1.setColor(HSSFFont.COLOR_NORMAL); font1.setBoldweight(HSSFFont.BOLDWEIGHT_NORMAL); // 建立單元格的格式,如居中、左對齊等 HSSFCellStyle cellStyle = workbook.createCellStyle(); cellStyle.setAlignment(HSSFCellStyle.ALIGN_CENTER); // 水平方向上居中對齊 // 垂直方向上居中對齊 cellStyle.setVerticalAlignment(HSSFCellStyle.VERTICAL_CENTER); cellStyle.setFont(font); // 設定字型 HSSFCellStyle cellStyle1 = workbook.createCellStyle(); cellStyle1.setAlignment(HSSFCellStyle.ALIGN_LEFT); cellStyle1.setFont(font1); // 下面將建立一個4行3列的表。第一行為表頭。 int rowNum = 0;// 行標 int colNum = 0;// 列標 HSSFRow row = sheet.createRow((short) rowNum); // 在索引0的位置建立行 HSSFCell cell = null; // 單元格 rowNum = 0; for (; rowNum < 9; rowNum++) { row = sheet.createRow((short) rowNum); for (colNum = 0; colNum < 5; colNum++) { // 在當前行的colNum位置建立單元格 cell = row.createCell((short) colNum); } } rowNum = 0; colNum = 0; cell = sheet.getRow(rowNum).getCell((short) colNum); cell.setEncoding(HSSFCell.ENCODING_UTF_16); cell.setCellStyle(cellStyle); cell.setCellValue(jf.getText()); // 新建一輸出檔案流 fOut = new FileOutputStream(file); // 將建立的內容寫到指定的Excel檔案中 workbook.write(fOut); fOut.flush(); fOut.close();// 操作結束,關閉檔案 System.out.println("Excel檔案建立成功!\nExcel檔案的存放路徑為:" + file.getAbsolutePath()); } catch (Exception e) { System.out.println("Excel檔案" + file.getAbsolutePath() + "建立失敗\n其原因為:" + e); } finally { if (fOut != null) { try { fOut.close(); } catch (IOException e1) { } } } } } }