batchlook.jsp代码:<form name="form1" action="uploadtoserver.jsp" method="post" ENCTYPE="multipart/form-data"> //一定要加上 ENCTYPE="multipart/form-data" 上传excel<input type="file" name="TEST" SIZE="40" id="upfile"> <input type="submit" value="上传"> </form>
uploadtoserver.jsp代码<%@ page contentType="text/html;charset=gbk" %> <%@ page import="com.upload.jspsmart.upload.*"%> <jsp:useBean id="mySmartUpload" scope="page" class="com.upload.jspsmart.upload.SmartUpload" /> <%@page import="sms.batch.FilePreviewMsg"%> <%@page import="java.util.ArrayList"%> <%@page import="sms.batch.BatchLook"%> <%@page import="sms.batch.BatchLookDao"%> <%@page import="java.util.Date"%> <%@page import="java.util.List"%> <%@page import="java.text.SimpleDateFormat"%> <%@page import="java.io.PrintWriter"%> <% mySmartUpload.initialize(pageContext); //上传文件初始化 mySmartUpload.upload();//上传文件 String path=pageContext.getServletContext().getRealPath(""); path=path.substring(0,path.lastIndexOf("//")); path=path+"//data//sendfiles//";//上传文件路径 com.upload.jspsmart.upload.File myFile = mySmartUpload.getFiles().getFile(0);//得到上传的文件 String fileName=myFile.getFileName(); java.text.SimpleDateFormat simpleDateFormat = new java.text.SimpleDateFormat("yyyyMM");//日期转换,用来命名文件 String strDate = simpleDateFormat.format(new Date());//以日期命名文件 fileName = fileName.substring(fileName.lastIndexOf("."),fileName.length()); fileName=strDate+fileName; java.io.File file = new java.io.File(path);//在服务器上新建目录 if(!file.isDirectory()){ file.mkdirs(); } path= path + fileName;//文件的完整路径 if(file .exists()){ myFile.saveAs(path);//将上传的文件保存到服务器 FilePreviewMsg filePreviewMsg = new FilePreviewMsg();//jxl对象对来解析excel ArrayList list = filePreviewMsg.getPreviewMsgList(path);//解析excel BatchLook batchLook;//每一行即一个看板对象 //删除之前导入的 batchLook =(BatchLook)list.get(0); batchLookDao.save(batchLook)//数据库操作,保存到数据库 } %>
FilePreviewMsg.java代码:package sms.batch; import java.io.*; import java.net.Authenticator; import java.net.HttpURLConnection; import java.net.URL; import java.text.SimpleDateFormat; import java.util.ArrayList; import java.util.Vector; import com.common.GlobalValueManager; import jxl.*; import jxl.format.Alignment; import jxl.format.Colour; import jxl.format.UnderlineStyle; import jxl.format.VerticalAlignment; import jxl.read.biff.BiffException; import jxl.write.Label; import jxl.write.WritableCellFormat; import jxl.write.WritableFont; import jxl.write.WritableSheet; import jxl.write.WritableWorkbook; import jxl.write.WriteException; import jxl.write.biff.RowsExceededException; /* * author lzf by 2010-10-21 * jxl读取上传excel内容 */ public class FilePreviewMsg { //读取EXCEL public ArrayList getPreviewMsgList(String fileName) { System.out.println(fileName); ArrayList list = new ArrayList(); SimpleDateFormat sdf = new SimpleDateFormat("dd/MM/yyyy"); SimpleDateFormat sdf1 = new SimpleDateFormat("yyyy-MM-dd"); try { Workbook book = Workbook.getWorkbook(new File(fileName)); Sheet sheet = book.getSheet(0); // 获得第一个工作表对象 int rows = sheet.getRows(); BatchLook batchLook ; for (int i = 0; i < rows - 1; i++) { Cell[] cell = sheet.getRow(i); batchLook = new BatchLook(); if (cell.length == 0) { continue; } if(sheet.getCell(0, 0).getContents().trim().contains("日期")){ batchLook.setBatch_look_date(sdf1.format(sdf.parse(sheet.getCell(0, i+1).getContents().trim()))); } if(sheet.getCell(1, 0).getContents().trim().contains("预测需求")){ batchLook.setBefor_need(Integer.parseInt(sheet.getCell(1, i+1).getContents().trim())); } if(sheet.getCell(2, 0).getContents().trim().contains("承接需求")){ batchLook.setContinue_need(Integer.parseInt(sheet.getCell(2, i+1).getContents().trim())); } if(sheet.getCell(3, 0).getContents().trim().contains("承接能力")){ batchLook.setContinue_ability(Integer.parseInt(sheet.getCell(3, i+1).getContents().trim())); } if(sheet.getCell(4, 0).getContents().trim().contains("剩余资源")){ batchLook.setLeave_resource(Integer.parseInt(sheet.getCell(4, i+1).getContents().trim())); } list.add(batchLook); } } catch (BiffException e) { System.out.println("excel 不符合格式"); e.printStackTrace(); } catch (IOException e) { System.out.println("excel 不符合格式"); e.printStackTrace(); }catch(Exception ex){ ex.printStackTrace(); } return list; } public void exportExcel(String fileName,ArrayList content) { // String fileName = "D://myexcel2.xls" ; WritableWorkbook wwb; FileOutputStream fos; try { fos = new FileOutputStream(fileName); wwb = Workbook.createWorkbook(fos); WritableSheet ws = wwb.createSheet("sheet1",100); // 创建一个工作表 // 设置单元格的文字格式 WritableFont wf = new WritableFont(WritableFont.ARIAL,12,WritableFont.NO_BOLD,false, UnderlineStyle.NO_UNDERLINE,Colour.BLUE); WritableCellFormat wcf = new WritableCellFormat(wf); wcf.setVerticalAlignment(VerticalAlignment.CENTRE); wcf.setAlignment(Alignment.CENTRE); ArrayList list; for(int i=0;i<content.size();i++){ list = (ArrayList)content.get(i); if(i == 0) wcf = new WritableCellFormat(); for(int j=0;j<list.size();j++){ ws.addCell(new Label(j,i , list.get(j).toString(), wcf)); } } wwb.write(); wwb.close(); } catch (IOException e){ } catch (RowsExceededException e){ } catch (WriteException e){} } }
BatchLook.javapackage sms.batch; /** 记录月度资源区 * @author lzf * */ public class BatchLook { private int batch_look_id; //群发项目编号 private int ent_id;//企业ID private String batch_look_date;//日期 private int befor_need;//预测需求 private int continue_need;//承接需求 private int continue_ability;//承接能力 private int leave_resource ;//剩余资源 private String resource_vlaue;//资源伐值 public String getResource_vlaue() { return resource_vlaue; } public String getResource_vlaue_color() { if (resource_vlaue == null || resource_vlaue.equals("")){ return "color : #FF9933"; }else if(Float.parseFloat(resource_vlaue) < 0){ return "color:red"; }else if( Float.parseFloat(resource_vlaue) >1000){ return "color:green"; }else if( Float.parseFloat(resource_vlaue) >=0 && Float.parseFloat(resource_vlaue)<100 ){ return "color : #FF9933"; }else{ return ""; } } public void setResource_vlaue(String resourceVlaue) { resource_vlaue = resourceVlaue; } public int getBatch_look_id() { return batch_look_id; } public void setBatch_look_id(int batchLookId) { batch_look_id = batchLookId; } public int getEnt_id() { return ent_id; } public void setEnt_id(int entId) { ent_id = entId; } public String getBatch_look_date() { return batch_look_date; } public void setBatch_look_date(String batchLookDate) { batch_look_date = batchLookDate; } public int getBefor_need() { return befor_need; } public void setBefor_need(int beforNeed) { befor_need = beforNeed; } public int getContinue_need() { return continue_need; } public void setContinue_need(int continueNeed) { continue_need = continueNeed; } public int getContinue_ability() { return continue_ability; } public void setContinue_ability(int continueAbility) { continue_ability = continueAbility; } public int getLeave_resource() { return leave_resource; } public void setLeave_resource(int leaveResource) { leave_resource = leaveResource; } }
安裝 Jest 和相關依賴 首先,安裝 Jest 和 TypeScript 的 Jest 預處理器ts-jest以及類型定義文件。 npm install --save-dev jest ts-jest @types/jest 初
If you remove the SIM card and use ss to mask your location, you might be able to register and log in to TikTok using yo
Learning embedded systems efficiently, especially for car manufacturing applications, involves a blend of hardware and s
前提 你必須會創建aspire項目,不會的請先看微服務新體驗之Aspire初體驗 Aspirate (Aspir8) Aspirate 是將aspire項目發佈到k8s集羣的工具 安裝aspirate dotnet tool install
之前聊了向量數據庫,大模型也火了一段時間了,今天特地嘗試一下基於Langchain進行百度千帆大模型的使用。Langchain相當於一個LLM編程框架,開發中無需過多關心各個大模型的接入,只需安裝相關模型,統一通過Langchain去調用相
前言 今天大姚給大家分享5款.NET開源、免費的Redis客戶端組件庫,希望可以幫助到有需要的同學。 StackExchange.Redis StackExchange.Redis是一個基於.NET的高性能Redis客戶端,提供了完整的Re
很多APP都需要主動向用戶推送消息,這就需要用到長連接的服務,即我們通常提到的websocket,同樣也是使用socket服務,通信協議是基本類似的,在go中用的最多的、也是最簡單的socket服務就是gorilla/websocket,
netstat -ano |findstr 6379
b2, 然後去口腔醫院開藥, 開的一個消毒的水,滴幾滴跟伊曲康唑碾碎了,弄成糊,塗嘴上, 過十分鐘會幹硬, 之後塗上黃黴素眼藥膏. 兩天效果就很好了.
線程池的拒絕策略有哪些? 如果當前同時運行的線程數量達到最大線程數量並且隊列也已經被放滿了任務時,ThreadPoolExecutor 定義一些策略: ThreadPoolExecutor.AbortPolicy:拋出 RejectedE
一、首先安裝好VS2022(可以參考如下安裝教程),其次在裏面擴展添加Visual Studio Installer Projects 1.VS2022安裝教程參考:VisualStudio2022下載安裝與使用超詳細教程 - 編程寶庫 (
一:背景 1. 講故事 前些天有位朋友找到我,說他的軟件在客戶那邊不知道什麼原因崩掉了,從windows事件日誌看崩潰在 clr 裏,讓我能否幫忙定位下,dump 也抓到了,既然dump有了,接下來就上 windbg 分析吧。 二:WinD
jimmy@MacBook-Pro ~ % brew -v Homebrew 4.0.15-84-g9d5b017 Homebrew/homebrew-core (git revision c04886e1f63; last commit
想複製網頁上的文字,彈出需要登錄等,很煩人。 打開開發者工具 按F12打開 瀏覽器操作打開 禁用JS 運行命令 按 Ctrl+Shift+P 或者如下圖,鼠標點擊,調出命令運行窗口 在運行窗口中輸入 JavaScript 點擊停用
前提條件 安裝 Nodejs 下載:https://nodejs.org/en/download/prebuilt-installer 切換 npm 源 npm config set registry https://registry.np