batchlook.jsp:<form name="form1" action="exportExcel.jsp" method="post" ENCTYPE="multipart/form-data"> <input type="submit" value="導出excel"> </form>
exportExcel.jsp:<%@ page contentType="text/html;charset=gbk" %> <%@ page import="java.util.*" %> <%@ page import="java.io.*" %> <%@ page import="sms.system.*" %> <%@ page import="sms.batch.*" %> <%@ page import="java.util.Date" %> <%@ page import="java.text.SimpleDateFormat" %> <%@ page import="com.upload.jspsmart.upload.*"%> <% String filePath=pageContext.getServletContext().getRealPath(""); filePath=filePath.substring(0,filePath.lastIndexOf("//")); filePath=filePath+"//data//sendfiles//myexcel2.xls";//文件路徑 //省略查詢數據庫代碼:parentList = dao.find(); FilePreviewMsg filePreviewMsg = new FilePreviewMsg();//jxl對象,用於將數據庫內容寫到excel filePreviewMsg.exportExcel(filePath,parentList);//將數據庫內容寫到excel //得到文件名稱"客戶信息導入模板.xls"; String fileName = filePath.substring(filePath.lastIndexOf("/")+1,filePath.length()).toString(); //讀到流中 InputStream inStream=new FileInputStream(filePath);//文件的存放路徑 //設置輸出的格式 response.reset(); response.setContentType("application/vnd.ms-excel;charset=gb2312"); response.addHeader("Content-Disposition","attachment; filename=/"" + java.net.URLEncoder.encode(fileName, "UTF-8") + "/""); //循環取出流中的數據 byte[] b = new byte[1024]; int len; while((len=inStream.read(b)) >0) response.getOutputStream().write(b,0,len); inStream.close(); %>
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; } @SuppressWarnings("unchecked") 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){} } }
前言 隨着直播行業大火,各種直播類產品和產品層出不窮,能夠滿足各方人員的需求和互動,也使得鬥魚、虎牙、抖音都隨着直播業的大火而欣欣向榮, 大家也對直播平臺瞭解不少,也參與使用,但是怎麼樣才能研發出視頻直播平臺呢?那麼針對於這個問題就是我
1 環境配置要求: apt使用阿里雲的源 設置主機名及解析,設定時鐘同步,關閉swap和防火牆,開啓IPv4轉發。 更改機器名 hostnamectl set-hostname master 2.關閉swap和防火牆 swapoff -a
安裝kube-vip kubectl apply -f https://kube-vip.io/manifests/rbac.yaml 使用daemonset部署kube-vip export VIP=192.168.215.200 #
安裝 NFS 服務器: 首先,打開終端並安裝 NFS 服務器軟件包: sudo apt update sudo apt install nfs-kernel-server 創建共享目錄: 決定哪個目錄你想要共享,然後創建它(如果還不存在
kafka作爲商業級中間件,它在設計時優先考慮的可靠性、可用性,同時兼顧一致性,這是所有分佈式都會遇到的cap理論,kafka也不例外;可靠性通過副本機制解決,可用性通過leader和follower機制來解決。 kafka的可靠性
樣式的究極解決方案: https://www.gradio.app/guides/theming-guide 如果裏面text等設置的還不滿意, 可以直接改源碼, 或者複寫即可.都不難, 只需要python看源碼的一點功力即可自定義化樣式.
注意輸入一定是www開頭,然後是域名,然後是com.
Playwright是微軟開發的,專門爲滿足端到端測試需求而創建的。Playwright支持包括Chromium、WebKit和Firefox在內的所有現代渲染引擎。在Windows、Linux和macOS上進行測試,本地或在CI上,無頭或
擴展apisix原始插件 當apisix提供的插件不能滿足我們要求時,我們可能需要將它的plugin進行個性化擴展,例如一個jwt認證插件jwt-auth,它本身具有驗證jwt有效性功能,支持rs256,hs256等常用簽名算法,但在驗證之
Masm5以後推出的simplified segment模式及.model標準模型中,都將段組合成一個group,group的作用及優點是什麼呢? 一、Group的作用 將組(group)後的所有段加入一個組,位於這些段內的的label
How to redirect to a specific web page after sign out from Entra ID With some more digging I found the below changes res
應該有很久沒相親了,現在對相親而言,毫無期待而言,還是會有些排斥吧。 因爲前女友和現在的各種頭條,加上最新婚姻法的規定,讓我對婚姻更加望而卻步了。 又有相親了 進入5月後,共有兩個相親,最後都是以失敗告終! 相親女1: 92年,160,大
在上一期博客裏,我們提到使用使用c#強大的表達式樹實現對象的深克隆,文章地址:https://www.cnblogs.com/gmmy/p/18186750。但是文章裏沒有解決如何實現循環引用的問題。 循環引用 在C#中,循環引用通常發生在
轉自:https://blog.csdn.net/liyh722/article/details/136699609 問題原因: java.net.BindException:地址已在使用中: 也就是idea啓動時需要佔用一些端口,但
你想要擴展函數中的某個閉包,允許它能訪問和修改函數的內部變量。 解決方案 通常,閉包的內部變量對外界是完全隱藏的。但可以編寫訪問函數,將其作爲函數屬性綁定到閉包上來實現訪問。 def sample(): n = 0 # 閉包