精华内容
下载资源
问答
  • 2021-04-17 07:58:17

    java web 上传的excel文件以html文件存储怎么做啊,求例子

    文件存储到服务器上还是数据库?提交问题一定要清楚

    java web中利用jsp和servlet怎么实现excel文件的导入(导入保存在数据库中)不用太复杂的,拜托啦?

    上传文件

    按行,读取文件

    每行数据装入对应实体

    实体入list

    list批量存入数据库

    每一步具体哪个需要解释?或者自己能查到么?按步做呗...

    java web 怎么导入excel文件

    1.要的将Web客户端的Excel文件导入到服务器的数中,需要将客户端的Excel文传到服务器上。可以使FileUpload控件完成。2.Excel文件上传到服务器指定的目录中,这里假设是该站点的upfiles目录中。3.使用SQL语句从upfiles目录中的上传Excel文件中读取数据显示或写入数据库。

    java web项目中,如何把自己上传的excel文件,用分页的形式,显示在页面,

    自己写分页工具,将解析的EXCEL数据放到分页工具中。

    EXCEL文件可以通过JXL或者POI解析。

    分页思想网上很多,自己看看,这里不罗嗦了。

    如何使用java自动读取web项目中的excel文件

    package com.bjhz.gcp.common.util;

    import java.io.FileNotFoundException;

    import java.io.FileOutputStream;

    import java.io.IOException;

    import java.io.OutputStream;

    import java.lang.reflect.InvocationTargetException;

    import java.lang.reflect.Method;

    import java.sql.Timestamp;

    import java.text.SimpleDateFormat;

    import java.util.ArrayList;

    import java.util.Date;

    import java.util.HashMap;

    import java.util.List;

    import java.util.Locale;

    import java.util.Map;

    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.HSSFRichTextString;

    import org.apache.poi.hssf.usermodel.HSSFRow;

    import org.apache.poi.hssf.usermodel.HSSFSheet;

    import org.apache.poi.hssf.usermodel.HSSFWorkbook;

    /**

    *

    * 导出EXCEL

    * @author Herenqing

    *

    */

    public class WritExcel {

    public static final Integer WRIT_TITLE = 1;

    public static final Integer NO_WRIT_TITLE = 0;

    private static String format = "yyyy-MM-dd HH:mm:ss";

    private static String nullDisplay = "";

    private List columnName = new ArrayList();

    private Map columnObject = new HashMap();

    private String savePath;

    private OutputStream outputStream;

    /**

    * 构入EXCEL的路径

    * put 方法创建导出的内容

    * 使用 writ 方法将对入EXCEL

    * @param savePath

    * @throws FileNotFoundException

    */

    public WritExcel(String savePath) {

    this.savePath = savePath;

    }

    /**

    * 构造写入EXCEL的路径

    * 使用 put 方法创建导出的内容

    * 使用 writOutputStream 方法将对象写入 HSSFWorkbook

    * @param savePath

    * @throws FileNotFoundException

    */

    /*public WritExcel() {

    }*/

    /**

    * 构建导出顺序及导出字段

    * @param key 导出字段名

    * @param value 表头

    */

    public void put(String key,String value) {

    this.columnName.add(key);

    this.columnObject.put(key, value);

    }

    /**

    * 写入EXCEL

    * @param 写入EXCEL的对象类型

    * @param objects 写入EXCEL的对象

    * @param model 写不写表头

    * @throws IOException

    * @throws InvocationTargetException

    * @throws IllegalAccessException

    * @throws IllegalArgumentException

    */

    public void writ(List objects,Integer model) throws IOException, IllegalArgumentException, IllegalAccessException, InvocationTargetException {

    // 创建一个Excel

    HSSFWorkbook book = new HSSFWorkbook();

    // 创建一个工作簿

    HSSFSheet sheet = book.createSheet();

    // 设置工作簿的默认列宽

    sheet.setDefaultColumnWidth(30);

    Integer start = 0;

    if (model == WRIT_TITLE) {

    HSSFCellStyle titleStyle = buildTitleStyle(book);

    writExcelTitle(sheet,titleStyle);

    start = WRIT_TITLE;

    }

    HSSFCellStyle columnStyle = buildColumnStyle(book);

    writExcelColumn(objects,start,sheet,columnStyle);

    outputStream = new FileOutputStream(savePath);

    book.write(outputStream);

    outputStream.close();

    }

    /**

    * 写入EXCEL

    * @param 写入EXCEL的对象类型

    * @param objects 写入EXCEL的对象

    * @param model 写不写表头

    * @throws IOException

    * @throws InvocationTargetException

    * @throws IllegalAccessException

    * @throws IllegalArgumentException

    */

    /*public HSSFWorkbook writOutputStream(List objects,Integer model) throws IOException, IllegalArgumentException, IllegalAccessException, InvocationTargetException {

    // 创建一个Excel

    HSSFWorkbook book = new HSSFWorkbook();

    // 创建一个工作簿

    HSSFSheet sheet = book.createSheet();

    // 设置工作簿的默认列宽

    sheet.setDefaultColumnWidth((short)30);

    Integer start = 0;

    if (model == WRIT_TITLE) {

    HSSFCellStyle titleStyle = buildTitleStyle(book);

    writExcelTitle(sheet,titleStyle);

    start = WRIT_TITLE;

    }

    HSSFCellStyle columnStyle = buildColumnStyle(book);

    writExcelColumn(objects,start,sheet,columnStyle);

    return book;

    }*/

    /**

    * 使用内容样式

    * @return

    */

    private HSSFCellStyle buildColumnStyle(HSSFWorkbook book){

    // 设置样式

    HSSFCellStyle columnStyle = book.createCellStyle();

    //titleStyle.setFillForegroundColor(HSSFColor.SKY_BLUE.index);

    //titleStyle.setFillPattern(HSSFCellStyle.SOLID_FOREGROUND);

    //titleStyle.setBorderBottom(HSSFCellStyle.BORDER_THIN);

    columnStyle.setLeftBorderColor(HSSFCellStyle.BORDER_THIN);

    columnStyle.setRightBorderColor(HSSFCellStyle.BORDER_THIN);

    columnStyle.setTopBorderColor(HSSFCellStyle.BORDER_THIN);

    columnStyle.setAlignment(HSSFCellStyle.ALIGN_CENTER);

    // 设置字体

    HSSFFont font = book.createFont();

    //font.setColor(HSSFColor.VIOLET.index);

    //font.setFontHeight((short)12);

    //font.setBoldweight(HSSFFont.BOLDWEIGHT_BOLD);

    // 把字体应用到当前样式

    columnStyle.setFont(font);

    return columnStyle;

    }

    /**

    * 使用表头样式

    */

    private HSSFCellStyle buildTitleStyle(HSSFWorkbook book){

    // 设置样式

    HSSFCellStyle titleStyle = book.createCellStyle();

    //titleStyle.setFillForegroundColor(HSSFColor.SKY_BLUE.index);

    //titleStyle.setFillPattern(HSSFCellStyle.SOLID_FOREGROUND);

    //titleStyle.setBorderBottom(HSSFCellStyle.BORDER_THIN);

    titleStyle.setLeftBorderColor(HSSFCellStyle.BORDER_THIN);

    titleStyle.setRightBorderColor(HSSFCellStyle.BORDER_THIN);

    titleStyle.setTopBorderColor(HSSFCellStyle.BORDER_THIN);

    titleStyle.setAlignment(HSSFCellStyle.ALIGN_CENTER);

    // 设置字体

    HSSFFont font = book.createFont();

    //font.setColor(HSSFColor.VIOLET.index);

    //font.setFontHeight((short)12);

    font.setBoldweight(HSSFFont.BOLDWEIGHT_BOLD);

    // 把字体应用到当前样式

    titleStyle.setFont(font);

    return titleStyle;

    }

    /**

    * 写入表头

    */

    private void writExcelTitle(HSSFSheet sheet,HSSFCellStyle titleStyle) throws IOException {

    // 表头

    HSSFRow title = sheet.createRow(0);

    for (Integer i = 0; i < columnName.size(); i ) {

    HSSFCell cell = title.createCell(i);

    cell.setCellStyle(titleStyle);

    HSSFRichTextString value = new HSSFRichTextString(columnObject.get(columnName.get(i)));

    cell.setCellValue(value);

    }

    }

    /**

    * 写入内容

    * @throws InvocationTargetException

    * @throws IllegalAccessException

    * @throws IllegalArgumentException

    */

    private void writExcelColumn(List objects,Integer start,HSSFSheet sheet,HSSFCellStyle titleStyle) throws IllegalArgumentException, IllegalAccessException, InvocationTargetException{

    for (int i = 0; i < objects.size(); i ) {

    Object object = objects.get(i);

    Class cls = object.getClass();

    HSSFRow column = sheet.createRow(start);

    for (int j = 0; j < columnName.size(); j ) {

    try {

    Method method = cls.getMethod(getMethod(columnName.get(j)));

    Object invokeResult = method.invoke(object);

    String result = returnTypeResult(invokeResult);

    HSSFCell cell = column.createCell(j);

    cell.setCellStyle(titleStyle);

    HSSFRichTextString value = new HSSFRichTextString(result);

    cell.setCellValue(value);

    } catch (NoSuchMethodException e) {

    continue;

    }

    }

    start ;

    }

    }

    /**

    * 构建get方法

    */

    private static String getMethod(String fieldName){

    return "get" fieldName.substring(0,1).toUpperCase(Locale.CHINA) fieldName.substring(1);

    }

    private static String returnTypeResult(Object object){

    if (object == null) {

    return nullDisplay;

    }

    if (object.getClass().getName().equals("java.util.Date")) {

    return formatDate(object);

    }else if (object.getClass().getName().equals("java.sql.Timestamp")) {

    Timestamp timestamp = Timestamp.valueOf(object.toString());

    Date date = timestamp;

    return formatDate(date);

    }else {

    return object.toString();

    }

    }

    /**

    * formatDate

    */

    private static String formatDate(Object date) {

    return new SimpleDateFormat(format).format(date);

    }

    }

    java,web项目我想上传一个rar压缩文件,里面有个excel和图片。

    apache有个org.apache.tools.zip包可以实现zip、rar文件压缩和解压,也支持加密。可以找找关于这的。

    另外j2sejava.util.zip包可以实现zip文件的压缩和解压,但不支持rar文件不支持加密。

    java web开发如何将本几上的excel文件中的数据导入到mysql数据库中,是web开发不是java se???

    java web 的意思是用 java 开发 web 应用程序。

    java web上传和下载ppt怎么做,需要上传到服务器上么?excel可以做,但是这个ppt怎么保存到数据库中?

    上话肯定是上传到服上的,要不你存哪?文件可换成二进制,库里可以以blob类型存储文件,但是不推荐这样,会降低数据库性能,一般都是在服务器上专门弄个地方存储,数据库中只保存路径和上传时间等等信息

    更多相关内容
  • 运用apache的fileupload库实现文件上传,运用jxl分析导入excel数据。 只需在现有页面上添加一个“导入”按钮就可实现excel导入数据库的功能,点击“导入”按钮,选择要上传的文件后会立即开始上传。 采用iframe的...
  • 主要为大家详细介绍了SpringBoot实现Excel文件批量上传导入数据库,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
  • 通过NPOI插件实现WPF导入和导出excel文件,其中导入文件部分可以手动选怎文件所在位置,导出文件部分还没有写,懒得修改了,参照导入文件修改即可
  • jfinal下的多文件上传以及对excel导入导出demo,使用了ajaxFileupload jfinal配合Jfinal使用
  • springboot开的excel导入数据,并把数据插入到数据库操作
  • sql脚本为批量导入excel文件数据到SQLSERVER库,可以导入多个sheet,需安装MicroSoft的AccessDatabaseEngine_X64组件,网上下载即可
  • 主要介绍了PHP上传Excel文件导入数据到MySQL数据库示例,可以将Excel的数据写入到MySQL数据库中,感兴趣的同学可以了解一下。
  • 内容索引:ASP源码,上传下载,ASP上传文件 ASP上传Excel文件导入数据到Access数据库,程序一共分二步操作,第一步是上传文件上传成功后再点击“导入数据”,Excel数据将被导入到Access的product表中,操作时要...
  • vue导入导出excel文件

    2019-04-16 09:00:39
    vue导入导出excel文件所需要用到的依赖文件,从网上转载而来,并非原创。大家需要可以从别处下载,这里下载需要积分,本人上传只是为了方便保存以供以后所用。
  • Excel的一个工具类,可以实现Excel导入导出等功能
  • 主要介绍了C# 文件上传下载(Excel导入,多线程下载)功能的实现代码,需要的朋友可以参考下
  • asp上传导入EXCEL文件
  • Java 文件上传 读取excel数据导入MySQL

    千次阅读 2018-09-22 19:15:53
    本文描述一种获取excel中数据,并保存数据库的方法,其实现的主要功能为:将excel上传服务器,得到该excel的绝对地址,解析excel中的内容,获取到行与列的内容,保存到mysql数据库。  为实现该功能主要有两种方式...

        本文描述一种获取excel中数据,并保存数据库的方法,其实现的主要功能为:将excel上传服务器,得到该excel的绝对地址,解析excel中的内容,获取到行与列的内容,保存到mysql数据库。

        为实现该功能主要有两种方式:

        (1)使用ajax异步上传。

        (2)使用form表单提交。

       在第(1)中方法中,通过如下代码获取file文件的路径时,会遇到如下图中的隐藏式的路径,该路径并无法实现上传文件。

    var file = document.getElementById("file").value;

        针对上述问题,笔者查阅了相当多的解决方法,但是未能解决,始终无法获取真实的绝对路径,从而无法实现上传文件,因为读者若执着使用该方法,可能会花费大量时间,且无法解决,若有人解决请在评论区加以解释,不胜感激!!!

        因此在本文中,主要陈述第(2)种方法实现获取excel数据存入MySQL的方法。

        本文中excel中主要存储的数据如下图所示(测试数据)。

        技术路线如下:

        获取excel文件(form提交)-------->上传服务器--------->获取excel文件在服务器的路劲-------->读取excel数据--------->存入MySQL

        实现代码如下:
        页面上传jsp代码:

    <form action="${pageContext.request.contextPath}/UploadFile" enctype="multipart/form-data" method="post">  
            上传文件:<input type="file" name="file2"><br/>
               <input type="submit" value="提交"/>
        </form>

        获取页面数据的servlet,名称为UploadFile,其主要代码如下:

    package com.njau.servlet;
    
    import java.io.File;
    import java.io.FileOutputStream;
    import java.io.IOException;
    import java.io.InputStream;
    import java.io.OutputStream;
    import java.util.List;
    
    import javax.servlet.ServletException;
    import javax.servlet.http.HttpServlet;
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;
    
    import org.apache.commons.fileupload.FileItem;
    import org.apache.commons.fileupload.FileUploadException;
    import org.apache.commons.fileupload.disk.DiskFileItemFactory;
    import org.apache.commons.fileupload.servlet.ServletFileUpload;
    
    import com.njau.dao.ExcelOperate;
    import com.njau.dao.QikanDao;
    import com.njau.po.Qikan;
    
    
    public class UploadFile extends HttpServlet {
    
    	/**
    	 * The doGet method of the servlet. <br>
    	 *
    	 * This method is called when a form has its tag value method equals to get.
    	 * 
    	 * @param request the request send by the client to the server
    	 * @param response the response send by the server to the client
    	 * @throws ServletException if an error occurred
    	 * @throws IOException if an error occurred
    	 */
    	private static final long serialVersionUID = 1L;
    	final static String uploadAddres = System.getProperty("catalina.home")+"\\webapps\\Science\\uploadFile\\";
    	public void doGet(HttpServletRequest request, HttpServletResponse response)
    			throws ServletException, IOException {
    
    		response.setContentType("text/html;charset=utf-8");
    		request.setCharacterEncoding("UTF-8");
            //上传服务器部分
    		String fileName = null;
    			//1、创建一个DiskFileItemFactory工厂
    	        DiskFileItemFactory factory = new DiskFileItemFactory();
    	        //2、创建一个文件上传解析器
    	        ServletFileUpload upload = new ServletFileUpload(factory);
    	        //解决上传文件名的中文乱码
    	        upload.setHeaderEncoding("UTF-8"); 
    			factory.setSizeThreshold(1024 * 500);//设置内存的临界值为500K
    			File linshi = new File("E:\\linshi");//当超过500K的时候,存到一个临时文件夹中
    			factory.setRepository(linshi);
    			upload.setSizeMax(1024 * 1024 * 5);//设置上传的文件总的大小不能超过5M
    			try {
    				// 1. 得到 FileItem 的集合 items
    				List<FileItem> /* FileItem */items = upload.parseRequest(request);
    	 
    				// 2. 遍历 items:
    				for (FileItem item : items) {
    					// 若是一个一般的表单域, 打印信息
    					if (item.isFormField()) {
    						String name = item.getFieldName();
    						String value = item.getString("utf-8");
    	 
    						System.out.println(name + ": " + value);
    						
    						
    					}
    					// 若是文件域则把文件保存到 e:\\files 目录下.
    					else {
    						fileName = item.getName();
    						long sizeInBytes = item.getSize();
    						//System.out.println(fileName);
    						//System.out.println(sizeInBytes);
    	 
    						InputStream in = item.getInputStream();
    						byte[] buffer = new byte[1024];
    						int len = 0;
    	 
    						fileName = uploadAddres + fileName;//文件最终上传的位置
    						System.out.println(fileName);
    						OutputStream out = new FileOutputStream(fileName);
    	 
    						while ((len = in.read(buffer)) != -1) {
    							out.write(buffer, 0, len);
    						}
    	 
    						out.close();
    						in.close();
    					}
    				}
    	 
    			} catch (FileUploadException e) {
    				e.printStackTrace();
    			}
            //解析excel,并存入数据库部分
    		File file = new File(fileName);//获取excel文件
    		ExcelOperate eo = new ExcelOperate();
    	       String[][] result = eo.getData(file, 1);//调用解析方法,存入二维数组result
    
    	       int rowLength = result.length;
    
    	       for(int i=0;i<rowLength;i++) {
    
    	           for(int j=0;j<result[i].length;j++) {
    	 
    	              //System.out.print(result[i][j]+"\t\t");//打印excel文件中数据
    	              Qikan qk = new Qikan();
    	              qk.setName(result[i][1]);
    				  qk.setFangxiang(result[i][0]);
    				  qk.setSx(result[i][2]);
    				  qk.setLink(result[i][3]);
    				  int type = QikanDao.getMark(qk);//检查数据库中是否以存在需上传数据
    				 // System.out.println(type);
    				  if(type==0){
    					  QikanDao.saveQikan(qk);//存入MySQL数据库
    				  }
    				  
    				  break;//跳出循环
    	           }
    
    	           System.out.println();
    
    	       }
    	}
    
    	/**
    	 * The doPost method of the servlet. <br>
    	 *
    	 * This method is called when a form has its tag value method equals to post.
    	 * 
    	 * @param request the request send by the client to the server
    	 * @param response the response send by the server to the client
    	 * @throws ServletException if an error occurred
    	 * @throws IOException if an error occurred
    	 */
    	public void doPost(HttpServletRequest request, HttpServletResponse response)
    			throws ServletException, IOException {
    
    		response.setContentType("text/html");
    		doGet(request, response);
    
    	}
    
    }

        Java获取excel数据代码,名称为ExcelOperate,即上述servlet中调用的getData()方法,具体实现代码如下:

    import org.apache.poi.hssf.usermodel.HSSFCell;
    import org.apache.poi.hssf.usermodel.HSSFDateUtil;
    import org.apache.poi.hssf.usermodel.HSSFRow;
    import org.apache.poi.hssf.usermodel.HSSFSheet;
    import org.apache.poi.hssf.usermodel.HSSFWorkbook;
    import org.apache.poi.poifs.filesystem.POIFSFileSystem;
    
    import java.io.BufferedInputStream;
    import java.io.File;
    import java.io.FileInputStream;
    import java.io.FileNotFoundException;
    import java.io.IOException;
    import java.text.DecimalFormat;
    import java.text.SimpleDateFormat;
    import java.util.ArrayList;
    import java.util.Arrays;
    import java.util.Date;
    import java.util.List;
    
    
    public class ExcelOperate {
    
        public static void main(String[] args) throws Exception {
            File file = new File("D:\\guide.csv");
            String[][] result = getData(file, 1);
            int rowLength = result.length;
            for (int i = 0; i < rowLength; i++) {
                System.out.println(result[i]);
                for (int j = 0; j < result[i].length; j++) {
                    System.out.print(result[i][j] + "\t\t");
                }
                System.out.println();
            }
        }
    
        /**
         * 读取Excel的内容,第一维数组存储的是一行中格列的值,二维数组存储的是多少个行
         *
         * @param file       读取数据的源Excel
         * @param ignoreRows 读取数据忽略的行数,比喻行头不需要读入 忽略的行数为1
         * @return 读出的Excel中数据的内容
         * @throws FileNotFoundException
         * @throws IOException
         */
        public static String[][] getData(File file, int ignoreRows)
                throws FileNotFoundException, IOException {
            List<String[]> result = new ArrayList<String[]>();
            int rowSize = 0;
            BufferedInputStream in = new BufferedInputStream(new FileInputStream(
                    file));
            // 打开HSSFWorkbook
            POIFSFileSystem fs = new POIFSFileSystem(in);
            HSSFWorkbook wb = new HSSFWorkbook(fs);
            HSSFCell cell = null;
            for (int sheetIndex = 0; sheetIndex < wb.getNumberOfSheets(); sheetIndex++) {
                HSSFSheet st = wb.getSheetAt(sheetIndex);
                // 第一行为标题,不取
                for (int rowIndex = ignoreRows; rowIndex <= st.getLastRowNum(); rowIndex++) {
                    HSSFRow row = st.getRow(rowIndex);
                    if (row == null) {
                        continue;
                    }
                    int tempRowSize = row.getLastCellNum() + 1;
                    if (tempRowSize > rowSize) {
                        rowSize = tempRowSize;
                    }
                    String[] values = new String[rowSize];
                    Arrays.fill(values, "");
                    boolean hasValue = false;
                    for (short columnIndex = 0; columnIndex <= row.getLastCellNum(); columnIndex++) {
                        String value = "";
                        cell = row.getCell(columnIndex);
                        if (cell != null) {
                            // 注意:一定要设成这个,否则可能会出现乱码,后面版本默认设置
                            //cell.setEncoding(HSSFCell.ENCODING_UTF_16);
                            switch (cell.getCellType()) {
                                case HSSFCell.CELL_TYPE_STRING:
                                    value = cell.getStringCellValue();
                                    break;
                                case HSSFCell.CELL_TYPE_NUMERIC:
                                    if (HSSFDateUtil.isCellDateFormatted(cell)) {
                                        Date date = cell.getDateCellValue();
                                        if (date != null) {
                                            value = new SimpleDateFormat("yyyy-MM-dd")
                                                    .format(date);
                                        } else {
                                            value = "";
                                        }
                                    } else {
                                        value = new DecimalFormat("0").format(cell
    
                                                .getNumericCellValue());
                                    }
                                    break;
                                case HSSFCell.CELL_TYPE_FORMULA:
                                    // 导入时如果为公式生成的数据则无值
                                    if (!cell.getStringCellValue().equals("")) {
                                        value = cell.getStringCellValue();
                                    } else {
                                        value = cell.getNumericCellValue() + "";
                                    }
                                    break;
                                case HSSFCell.CELL_TYPE_BLANK:
                                    break;
                                case HSSFCell.CELL_TYPE_ERROR:
                                    value = "";
                                    break;
                                case HSSFCell.CELL_TYPE_BOOLEAN:
                                    value = (cell.getBooleanCellValue() == true ? "Y"
    
                                            : "N");
                                    break;
                                default:
                                    value = "";
                            }
                        }
                        if (columnIndex == 0 && value.trim().equals("")) {
                            break;
                        }
                        values[columnIndex] = rightTrim(value);
                        hasValue = true;
                    }
                    if (hasValue) {
                        result.add(values);
                    }
                }
            }
            in.close();
            String[][] returnArray = new String[result.size()][rowSize];
            for (int i = 0; i < returnArray.length; i++) {
                returnArray[i] = (String[]) result.get(i);
            }
            return returnArray;
        }
    
    
        /**
         * 去掉字符串右边的空格
         *
         * @param str 要处理的字符串
         * @return 处理后的字符串
         */
    
        public static String rightTrim(String str) {
            if (str == null) {
                return "";
            }
            int length = str.length();
            for (int i = length - 1; i >= 0; i--) {
                if (str.charAt(i) != 0x20) {
                    break;
                }
                length--;
            }
            return str.substring(0, length);
        }
    }

        Java,检查数据库中是否已存在需上传数据,调用函数名为getMark()方法,代码如下所示:

    public static int getMark(Qikan qk) {
    		int mark = 0;
    		PreparedStatement pstmt = null;
    		ResultSet rs = null;
    		Connection conn = null;
    		String name = qk.getName();
    		String sql="select name from qk where name='"+name+"'";//��ѯ���?
    		try {
    			conn = DB.getConn();
    			pstmt = DB.getPStmt(conn, sql);
    			rs = pstmt.executeQuery();
    			if(rs.next()){
    				mark=1;
    			}
    	}catch (SQLException e) {
    		e.printStackTrace();
    	} finally {
    		DB.closeRs(rs);
    		DB.closeStmt(pstmt);
    		DB.closeConn(conn);
    	}
    	return mark;
    	}
    }

        存入MySQL数据库代码如下:

    public static void saveQikan(Qikan qk) {
    		Connection conn = null;
    		PreparedStatement pstmt = null;
    		try {
    			conn = DB.getConn();
    			String sql = "insert into qk value (?,?,?,?,?) "; 
    			pstmt = DB.getPStmt(conn, sql);
    			pstmt.setObject(1, null);
    			pstmt.setString(2, qk.getFangxiang());
    			pstmt.setString(3, qk.getName());
    			pstmt.setString(4, qk.getSx());
    			pstmt.setString(5, qk.getLink());
    			
    			pstmt.executeUpdate();
    		} catch (SQLException e) {
    			e.printStackTrace();
    		} finally {
    			DB.closeStmt(pstmt);
    			DB.closeConn(conn);
    		}
    		
    	}

    注:文中使用jdbc方法访问数据库,具体的工具类如下:

    package com.njau.common;
    
    import java.sql.*;
    
    
    public class DB {
    	static {
    		try {
    			Class.forName("com.mysql.jdbc.Driver");//锟斤拷锟斤拷锟斤拷菘锟斤拷锟斤拷锟斤拷Class.forName(锟斤拷锟斤拷锟斤拷锟�
    		} catch (ClassNotFoundException e) {
    			e.printStackTrace();//锟斤拷锟斤拷撇锟斤拷锟斤拷诨锟斤拷锟斤拷锟矫伙拷屑锟斤拷锟�
    		}
    	}
    
    	private DB() {
    	}
    
    	public static Connection getConn() {
    		Connection conn = null;
    		try {
    			conn = DriverManager.getConnection(
    					"jdbc:mysql://localhost:3306/sciencenew?useUnicode=true&characterEncoding=utf-8", "root", "123456");//通锟斤拷锟矫伙拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷拥锟街凤拷锟饺★拷锟捷匡拷锟斤拷锟接讹拷锟斤拷DriverManager.getConnection(锟斤拷锟接碉拷址,锟矫伙拷锟斤拷,锟斤拷锟斤拷)
    		} catch (SQLException e) {
    			e.printStackTrace();//锟斤拷莸锟街凤拷锟斤拷锟斤拷锟斤拷锟矫伙拷锟斤拷锟斤拷锟斤拷写锟斤拷
    		}
    		return conn;
    	}
    
    	public static void closeConn(Connection conn) {//锟截憋拷锟斤拷锟斤拷菘锟斤拷锟斤拷锟斤拷
    		try {
    			if (conn != null) {
    				conn.close();
    				conn = null;
    			}
    		} catch (SQLException e) {
    			e.printStackTrace();
    		}
    	}
    
    	public static Statement getStmt(Connection conn) {
    		Statement stmt = null;
    		try {
    			stmt = conn.createStatement();//锟斤拷锟斤拷Statement实锟斤拷,Statement stmt = conn.createStatement()锟斤拷Statement锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷SQL锟斤拷锟斤拷锟斤拷锟藉,锟斤拷为Java锟斤拷锟斤拷锟睫凤拷锟斤拷锟斤拷锟斤拷要锟斤拷锟斤拷锟斤拷菘锟斤拷锟斤拷锟斤拷锟斤拷锟�
    		} catch (SQLException e) {
    			e.printStackTrace();
    		}
    		return stmt;
    	}
    
    	public static PreparedStatement getPStmt(Connection conn, String sql) {//使锟斤拷PreparedStatement实锟斤拷锟斤拷删锟侥诧拷
    		PreparedStatement pstmt = null;
    		try {
    			pstmt = conn.prepareStatement(sql);
    		} catch (SQLException e) {
    			e.printStackTrace();
    		}
    		return pstmt;
    	}
    
    	public static void closeStmt(Statement stmt) {
    		try {
    			if (stmt != null) {
    				stmt.close();
    				stmt = null;
    			}
    		} catch (SQLException e) {
    			e.printStackTrace();
    		}
    
    	}
    
    	public static ResultSet executeQuery(Statement stmt, String sql) {//执锟叫诧拷询SQL锟斤拷洌拷锟斤拷锟斤拷亟锟斤拷ResultSet rs = stmt.executeQuery(sql)
    		ResultSet rs = null;
    		try {
    			rs = stmt.executeQuery(sql);
    		} catch (SQLException e) {
    			e.printStackTrace();
    		}
    		return rs;
    	}
    
    	public static void closeRs(ResultSet rs) {//锟截憋拷锟斤拷锟接o拷rs.close()锟斤拷stmt.close()锟斤拷conn.close()
    		try {
    			if (rs != null) {
    				rs.close();
    				rs = null;
    			}
    		} catch (SQLException e) {
    			e.printStackTrace();
    		}
    	}
    
    	public static ResultSet executeQuery(Connection conn, String sql) {
    		ResultSet rs = null;
    		try {
    			rs = conn.createStatement().executeQuery(sql);
    		} catch (SQLException e) {
    			e.printStackTrace();
    		}
    		return rs;
    	}
    
    }
    

    参考https://www.cnblogs.com/winner-0715/p/6690094.html

    展开全文
  • 主要介绍了BootStrap Fileinput插件和Bootstrap table表格插件相结合实现文件上传、预览、提交的导入Excel数据操作步骤,需要的朋友可以参考下
  • 主要介绍了Java实现批量导入excel表格数据到数据库中的方法,结合实例形式详细分析了java导入Excel数据到数据库的具体步骤与相关操作技巧,需要的朋友可以参考下
  • 主要介绍了Vue结合后台导入导出Excel问题详解,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
  • php导入EXCEL插件

    2019-03-11 15:02:48
    php导入EXCEL插件
  • 本文实例讲述了C#使用NPOI导入Excel的方法。分享给大家供大家参考,具体如下: NPOI是由国人开发的一个进行excel操作的第三方库。百度百科介绍如下:NPOI 本文主要介绍如何使用NPOI将Excel数据读取。 首先引入程序集...
  • java Swing 导入导出Excel文件

    热门讨论 2013-10-28 14:12:37
    自定义的一个excel文件导入导出类,支持Excel2003到2010的格式。里面也有简单的配置文件的创建。
  • POI导入Excel并返回校验后的错误文件(原样数据文件,并添加批注,注:由于批注只能加1000条,会在Excel后面添加一栏错误信息)下载以及页面展示校验错误信息,同时添加导入进度条,提供页面js和css代码,后端...
  • 主要介绍了ThinkPHP基于PHPExcel导入Excel文件的方法,对于Excel文件上传、读取操作以及写入数据库等都做了较为详尽的讲述,在进行项目开发的过程中非常具有实用价值,需要的朋友可以参考下
  • JAVA 导入excel文件

    2022-04-02 18:07:36
    Java excel文件上传(识别内容)

    JAVA 导入excel文件

    背景

    –>struts2框架
    –>from表单提交excel模板文件
    –>java获取excel数据

    步骤

    1.获取excel文件

    struts2 from提交会出现file地址不对情况在这里插入图片描述

    解决办法: 获取Filename 和contentType,保存临时文件
    在这里插入图片描述

     String target = ServletActionContext.getServletContext().getRealPath("/upload/" + fileFieldFileName);
    //获取上传文件
     File file = new File(target);
    
     FileUtils.copyFile(fileField,file);
    
     FileInputStream fis = new FileInputStream(file);
    

    接下来就是做excel文件导入啦~(主要是获取里面的内容)

    2.对Excel文件解析获取数据

    代码如下:

       FileInputStream fis = new FileInputStream(file);
       Workbook wb;
       String[] split = fileFieldFileName.split("\\.");
       if ("xls".equals(split[1])){
         wb = new HSSFWorkbook(fis);
       }else if("xlsx".equals(split[1])){
          wb=new XSSFWorkbook(fis);
       }else {
         return ERROR;
       }
    

    对不同版本的excel文件要用不同的poi接口

      //解析workbook
      Sheet sheet = wb.getSheetAt(0);//读取第一页
       int firstRowNum = sheet.getFirstRowNum()+2; //获取第一行 第一和第二行为标题所以加2
       int lastRowNum = sheet.getLastRowNum();	//获取最后一行
       for (int i = firstRowNum; i <= lastRowNum; i++) { 	//遍历
            Row row = sheet.getRow(i);
            if (row!=null){
            //获取行以后就获取每一行的cell
             int firstCellNum = row.getFirstCellNum();
             int lastCellNum = row.getLastCellNum();
               for (int j = firstCellNum; j < lastCellNum; j++) {
                        Cell cell = row.getCell(j);
                        if (cell!=null){
                            System.out.println(j+":"+cell.toString());
                        }
                 }
           }
    

    cell.toString 获取的数字 原本为9 获取到为9.0
    这里加了一个处理方法:

    
        /**
         * 将单元格内容转换为字符串
         * @param cell
         * @return
         */
        private static String convertCellValueToString(Cell cell) {
            if(cell==null){
                return null;
            }
            String returnValue = null;
            switch (cell.getCellType()) {
                case 0: //数字
                    if (HSSFDateUtil.isCellDateFormatted(cell)) {// 处理日期格式、时间格式
                        SimpleDateFormat sdf = null;
                        if (cell.getCellStyle().getDataFormat() == HSSFDataFormat
                                .getBuiltinFormat("h:mm")) {
                            sdf = new SimpleDateFormat("HH:mm");
                        } else {// 日期
                            sdf = new SimpleDateFormat("yyyy-MM-dd");
                        }
                        Date date = cell.getDateCellValue();
                        returnValue = sdf.format(date);
                    } else if (cell.getCellStyle().getDataFormat() == 58) {
                        // 处理自定义日期格式:m月d日(通过判断单元格的格式id解决,id的值是58)
                        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
                        double value = cell.getNumericCellValue();
                        Date date = org.apache.poi.ss.usermodel.DateUtil
                                .getJavaDate(value);
                        returnValue = sdf.format(date);
                    } else {
                        double value = cell.getNumericCellValue();
                        CellStyle style = cell.getCellStyle();
                        DecimalFormat format = new DecimalFormat();
                        String temp = style.getDataFormatString();
                        // 单元格设置成常规
                        if (temp.equals("General")) {
                            format.applyPattern("#");
                        }
                        returnValue = format.format(value);
                    }
                    break;
                case 1: //字符串
                    returnValue = cell.getStringCellValue();
                    break;
                case 4: //布尔
                    Boolean booleanValue = cell.getBooleanCellValue();
                    returnValue = booleanValue.toString();
                    break;
                case 2: // 空值
                    break;
                case 7: // 公式
                    returnValue = cell.getCellFormula();
                    break;
                case 64: // 故障
                    break;
                default:
                    break;
            }
            return returnValue;
        }
    

    ok,大概告成。
    第一次写,下班嘻嘻

    ps:迪迦!!!

    展开全文
  • C# 导入Excel读取图片上传
  • 主要介绍了yii2.0框架实现上传excel文件导入到数据库的方法,结合实例形式详细分析了yii2.0上传excel文件导入到数据库的相关模型、视图、控制器实现技巧,需要的朋友可以参考下
  • 主要给大家介绍了关于利用django如何解析用户上传excel文件的相关资料,这是最近在工作中遇到的一个问题,觉着有必要分享出给大家,需要的朋友可以参考借鉴,下面来一起看看详细的介绍吧。
  • 文件上传下载 excel导入导出 及http 传输 真实解析 手工纯写
  • thinkphp5.1 导入excel文件 public function importExcel() { try { //获取表格的大小,限制上传表格的大小 if ($_FILES['file']['size'] > 10 * 1024 * 1024) { //文件过大 log_debug($log_title . 'END === ...
  • 今天小编就为大家分享一篇解决Java导入excel大量数据出现内存溢出的问题,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
  • java 导入Excel 文件,兼容Excel 2003(后缀名:xls)及 2007(后缀名:xlsx)的文件,同时还支持csv格式的文件

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 25,494
精华内容 10,197
关键字:

文件上传导入excel