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) {
					}
				}
			}
		}
	}
}

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
你好!很高兴为您解答问题。针对您的问题,可以使用Apache POI的XSSF API来实现。具体步骤如下: 1. 定义待合并的Excel文件夹路径和合并后的Excel文件名; 2. 使用File类遍历文件夹下的所有Excel文件,获取文件路径; 3. 使用XSSFWorkbook类打开每个Excel文件,并使用getSheetAt()获取指定Sheet; 4. 获取指定区域的行和列,通过for循环遍历每一行和每一列,将数据写入已创建的合并Excel文件中; 5. 关闭所有打开的Excel文件。 示例代码如下: ``` import java.io.File; import java.io.FileOutputStream; import java.io.IOException; import java.io.OutputStream; import org.apache.poi.ss.usermodel.Sheet; import org.apache.poi.ss.usermodel.Workbook; 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 ExcelMerger { public static void main(String[] args) throws IOException { // 定义待合并的Excel文件夹路径和合并后的Excel文件名 String folderPath = "C:\\excel_folder\\"; String mergedFileName = "merged_excel.xlsx"; String mergedFilePath = folderPath + mergedFileName; // 创建合并后的Excel文件 XSSFWorkbook mergedWorkbook = new XSSFWorkbook(); XSSFSheet mergedSheet = mergedWorkbook.createSheet("merged sheet"); // 遍历文件夹,获取Excel文件路径 File folder = new File(folderPath); File[] files = folder.listFiles(); for (File file : files) { String filePath = file.getAbsolutePath(); if (!filePath.endsWith(".xlsx")) { continue; } // 打开Excel文件 XSSFWorkbook workbook = new XSSFWorkbook(filePath); Sheet sheet = workbook.getSheetAt(0); // 获取指定区域的行和列,写入合并Excel文件 int startRow = 1; int endRow = 10; int startCol = 1; int endCol = 5; for (int i = startRow; i <= endRow; i++) { XSSFRow mergedRow = mergedSheet.createRow(i); for (int j = startCol; j <= endCol; j++) { XSSFCell mergedCell = mergedRow.createCell(j); XSSFCell cell = (XSSFCell) sheet.getRow(i).getCell(j); mergedCell.setCellValue(cell.toString()); } } // 关闭打开的Excel文件 workbook.close(); } // 输出合并后的Excel文件 OutputStream os = new FileOutputStream(mergedFilePath); mergedWorkbook.write(os); mergedWorkbook.close(); os.close(); } } ``` 希望能解决您的问题,如有不明白的地方或其他问题,欢迎继续咨询!

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值