tmp
package com.bfs.main; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.IOException; import java.io.InputStream; import java.io.OutputStream; import java.text.SimpleDateFormat; import java.util.Calendar; import java.util.HashMap; import java.util.regex.Pattern; import javax.swing.JButton; import javax.swing.JFrame; import javax.swing.JLabel; import javax.swing.JOptionPane; import javax.swing.JTextField; import org.apache.poi.ss.usermodel.Cell; import org.apache.poi.ss.usermodel.Sheet; import org.apache.poi.xssf.usermodel.XSSFSheet; import org.apache.poi.xssf.usermodel.XSSFWorkbook; public class ExecutionMain extends JFrame implements ActionListener { /** * */ private static final long serialVersionUID = 4757702907638719673L; // JTextField userTextTimeS; JTextField userTextTimeE; JTextField userTextJKousu; JTextField userTextSNaiyou; JTextField userTextBikou; //获取当前日期 public static final Calendar RIGHTNOW = Calendar.getInstance(); //当月sheet名 public String sheetName; //当前日期 public int day; public static final String SHEET_ = "月次報告_"; public static final int ROW_ = 7; /** 工数 */ public String str_yKousu; /** 月份转换用 */ public final static HashMap<Integer, String> HASHMAP = new HashMap<Integer, String>(); static { HASHMAP.put(1, "一月"); HASHMAP.put(2, "二月"); HASHMAP.put(3, "三月"); HASHMAP.put(4, "四月"); HASHMAP.put(5, "五月"); HASHMAP.put(6, "六月"); HASHMAP.put(7, "七月"); HASHMAP.put(8, "八月"); HASHMAP.put(9, "九月"); HASHMAP.put(10, "十月"); HASHMAP.put(11, "十一月"); HASHMAP.put(12, "十二月"); } /** 星期转换用 */ public final static HashMap<Integer, String> SUNHASHMAP = new HashMap<Integer, String>(); static { SUNHASHMAP.put(1, "周日"); SUNHASHMAP.put(2, "周一"); SUNHASHMAP.put(3, "周二"); SUNHASHMAP.put(4, "周三"); SUNHASHMAP.put(5, "周四"); SUNHASHMAP.put(6, "周五"); SUNHASHMAP.put(7, "周六"); } XSSFWorkbook xssfWorkbook = null; SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); SimpleDateFormat sunFm = new SimpleDateFormat("EEEE"); public static void main(String args[]) { new ExecutionMain(); } ExecutionMain() { // 高度设置用 int hight = 0; // 外观风格 JFrame.setDefaultLookAndFeelDecorated(true); // 创建及设置窗口 JFrame frame = new JFrame("作业实际管理填写工具"); frame.setLayout(null); frame.setSize(550, 200); // 允许用户自定义大小 frame.setResizable(false); // 窗口初始化出现在屏幕中央 frame.setLocationRelativeTo(null); // 点击x时动作为结束APP frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); //获取当前月份 int month = RIGHTNOW.get(Calendar.MONTH) + 1; day = RIGHTNOW.get(Calendar.DAY_OF_MONTH); int sun = RIGHTNOW.get(Calendar.DAY_OF_WEEK); /// 添加 “今天日期” JLabel toDay = new JLabel("今天是:"+month+"月"+day+"日 " + SUNHASHMAP.get(sun)); toDay.setBounds(10, hight, 200, 20); frame.add(toDay); hight += 20; try { InputStream is = new FileInputStream("H:\\個人管理_障がい者\\000_管理\\100_作業実績\\作業実績管理シート_危紫航.xlsx"); xssfWorkbook = new XSSFWorkbook(is); //获取当前月份sheet名 sheetName = SHEET_ + HASHMAP.get(month); //获取当前月份sheet Sheet sheet = xssfWorkbook.getSheet(sheetName); /// 添加 “マスク” Cell mskCell = sheet.getRow(ROW_+day).getCell(6); JLabel msk = new JLabel("マスク:"+ mskCell.toString()); msk.setBounds(10, hight, 200, 20); frame.add(msk); /// 获取 “予想工数” Cell ysCell = sheet.getRow(ROW_+day).getCell(11); str_yKousu = ysCell.toString(); } catch (IOException e) { JOptionPane.showMessageDialog(this, "文件读取失败。"); e.printStackTrace(); }finally { if(xssfWorkbook != null) { try { xssfWorkbook.close(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } } } hight += 20; //// 添加 “开始时间” JLabel timeS = new JLabel("开始时间"); timeS.setBounds(10, hight, 65, 20); frame.add(timeS); // 添加 “开始时间” 输入 userTextTimeS = new JTextField(10); userTextTimeS.setBounds(65, hight + 1, 65, 20); frame.add(userTextTimeS); //// 添加 “终了时间” JLabel timeE = new JLabel("终了时间"); timeE.setBounds(130, hight, 65, 20); frame.add(timeE); // 添加 “终了时间” 输入 userTextTimeE = new JTextField(10); userTextTimeE.setBounds(185, hight + 1, 65, 20); frame.add(userTextTimeE); //// 添加 “予想工数” JLabel yKousu = new JLabel("予想工数:"+ str_yKousu); yKousu.setBounds(260, hight + 1, 90, 20); frame.add(yKousu); //// 添加 “实际工数” JLabel jKousu = new JLabel("实际工数"); jKousu.setBounds(350, hight, 65, 20); frame.add(jKousu); // 添加 “实际工数” 输入 userTextJKousu = new JTextField(10); userTextJKousu.setBounds(415, hight + 1, 30, 20); frame.add(userTextJKousu); hight += 25; //// 添加 “作业概要” JLabel sagyouNaiyou = new JLabel("作业概要"); sagyouNaiyou.setBounds(10, hight, 65, 20); frame.add(sagyouNaiyou); // 添加 “作业概要” 输入 userTextSNaiyou = new JTextField(10); userTextSNaiyou.setBounds(65, hight + 1, 450, 20); frame.add(userTextSNaiyou); hight += 25; /// 添加 “備考” JLabel bikouNaiyou = new JLabel("備考"); bikouNaiyou.setBounds(10, hight, 65, 20); frame.add(bikouNaiyou); // 添加 “備考” 输入 userTextBikou = new JTextField(10); userTextBikou.setBounds(65, hight + 1, 300, 20); frame.add(userTextBikou); hight += 30; // 添加提交按钮 JButton button = new JButton("提交"); button.setBounds(10, hight, 60, 25); frame.add(button); button.addActionListener(this); // 显示窗口 frame.setVisible(true); } /** * 点击提交时进行的动作 */ @Override public void actionPerformed(ActionEvent args) { try { OutputStream out = new FileOutputStream("H:\\個人管理_障がい者\\000_管理\\100_作業実績\\作業実績管理シート_危紫航.xlsx"); // InputStream is = new FileInputStream("H:\\個人管理_障がい者\\000_管理\\100_作業実績\\作業実績管理シート_危紫航.xlsx"); // xssfWorkbook = new XSSFWorkbook("H:\\個人管理_障がい者\\000_管理\\100_作業実績\\作業実績管理シート_危紫航.xlsx"); //创建当前月份sheet XSSFWorkbook XSSFbook = null; XSSFbook = new XSSFWorkbook(out); XSSFSheet sheet = null; sheet = XSSFbook.getSheet(sheetName); /// 设置 “实际工数” sheet.getRow(ROW_+day).getCell(12).setCellValue("111"); // XSSFbook.write(out); // out.flush(); // out.close(); XSSFbook.close(); } catch (IOException e) { JOptionPane.showMessageDialog(this, "文件读取失败。"); e.printStackTrace(); return; }finally { if(xssfWorkbook != null) { try { xssfWorkbook.close(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } } } // // return; // // 按钮名取得 // String actionCommand = args.getActionCommand(); // // if (actionCommand == "提交") { // // 获取输入的开始时间 // String _userTextTimeS = userTextTimeS.getText().replaceAll("(?::|:)", ""); // // 获取输入的结束时间 // String _userTextTimeE = userTextTimeE.getText().replaceAll("(?::|:)", ""); // // 时间check // // 开始时间 // boolean flgS = timeCheck(_userTextTimeS); // if (!flgS) { // JOptionPane.showMessageDialog(this, "开始时间格式不正确,请重新输入。"); // return; // } // // 终了时间 // boolean flgE = timeCheck(_userTextTimeE); // if (!flgE) { // JOptionPane.showMessageDialog(this, "终了时间格式不正确,请重新输入。"); // return; // } // } } /** * 时间验证用 */ public static boolean timeCheck(String time) { // 非空判断 if (time.isEmpty() || time.length() != 4) { return false; } // 转换异常时处理 try { Integer.parseInt(time); } catch (NumberFormatException n) { return false; } // 获取输入的时间 // 获得时间小时部分 String Tmhh = time.substring(0, 2); // 获得时间分钟部分 String Tmmm = time.substring(2, 4); // 正则表达式 String sPatternTmhh = "^[0][0-9]$|^[1][0-9]$|^[2][0-3]$"; String sPatternTmmm = "^[0][0-9]$|^[1-5][0-9]$"; Boolean flgH = Pattern.matches(sPatternTmhh, Tmhh); Boolean flgM = Pattern.matches(sPatternTmmm, Tmmm); if (flgH && flgM) { return true; } else { return false; } } }