精华内容
下载资源
问答
  • java代码读取excel数据

    2017-05-27 14:50:20
    具体要上传excel查看数据列表,确认处理。 正常来说应该是找前台框架的,不论是直接在浏览器上提取excel数据,还是上传到后台再提取数据。然而我偏偏要上传文件,再java打开读取数据,确认处理后再读一遍去处理...

    遇到问题:需要在j2ee项目中,实现在网页上传excel表格,批量导入数据的功能。具体要上传excel,查看数据列表,确认处理。

    正常来说应该是找前台框架的,不论是直接在浏览器上提取excel数据,还是上传到后台再提取数据。然而我偏偏要上传文件,再用java打开读取数据,确认处理后再读一遍去处理。当然不论我怎么做,现在都需要java读取excel数据。

    除了上一篇提到的路径问题,就是读取数据问题。现在主要有poi包、jxl包等方便操作excel的第三方jar包。这里使用poi包。【就让你们见识见识所罗门疯狗吧poi!


    代码是参考别人的,毕竟文件流咱不是特别擅长,自己写很费劲。


    package com.**.util;
    
    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.HashMap;
    import java.util.List;
    import java.util.Map;
    
    import javax.servlet.ServletContext;
    
    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 com.****;
    import com.**;
    
    /**
     * 读取excel
     * @author 御坂镜
     *
     */
    public class LoadExcelUtil {
    
    	/**
    	 * 获取第一列第二行开始的电话号
    	 * @param args
    	 * @return
    	 * @throws Exception
    	 */
        public static List<ExcelMes> getNameAndPhone() throws Exception {
           File file = new File("WEB-INF/upload/excel/t.xls");//路径烦死个人
           String[][] result = getData(file, 1);
           List<ExcelMes> list = new ArrayList<ExcelMes>();
           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");
    //           }
               ExcelMes e = new ExcelMes();
               e.setName(result[i][0]);
               e.setPhone(result[i][1]);
               list.add(e);
           }
           return list;
        }
        /**
         * 读取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);
        }
    }
    


    参考来源:http://www.jb51.net/article/43713.htm 话说这是个脚本网站,作者也是空的,不知道他是不是也是转载的

    展开全文
  • 同样的代码在QQ浏览器中运行就可以直接在iframe里显示Excel表格,但是在IE浏览器中就不行了,求助这是为什么?怎么样可以在IE浏览器中也实现这个功能?(图1QQ浏览器,图2IE浏览器) ![图片说明]...
  • 突然要用到类似数据库中group by的方法统计数据,找了很久怎么excel上实现都没有找到很好的解决方法(很多说是数据透视表,数据合并之类的,但是感觉效果不理想) 最后终于找到了可以VBA实现,就算没学过VBA...

    突然要用到类似数据库中group by的方法统计数据,找了很久怎么在excel上实现都没有找到很好的解决方法(很多说是用数据透视表,数据合并之类的,但是感觉效果不理想)

    最后终于找到了可以用VBA实现,就算没学过VBA,按照下面的方法,修改一下参数就可以实现当前文件表格的合并计算了

    第一步:

    原文件上新建一个工作表

    第二步:

    右键点工作表页签名,找到“查看代码”

    第三步:编写代码

    Sub 合计()
    Set CONN = CreateObject("ADODB.Connection")
    CONN.Open "provider=microsoft.jet.oledb.4.0;extended properties=excel 8.0;data source=" & ThisWorkbook.FullName
    Sql = "select sum(列名1),列名2,列名3,列名4,列名5,列名6,列名7,列名8 ,列名8 from [表0$A:I]  group by 列名2,列名3,列名4,列名5,列名6,列名7,列名8 ,列名8 order by 列名2"

    Sheets("sheet1").[A1].CopyFromRecordset CONN.Execute(Sql)

    CONN.Close: Set CONN = Nothing

    End Sub
     

    PS:

    (1)表0$A:I  表示:表0的A到I列为原始数据

    (2)Sheets("sheet1").[A1]  表示:保存结果到sheet1从A1开始

    第四步:运行公式

    如上操作即可生成sql语句的执行结果。

    参考资料:http://www.360doc.com/content/13/1107/22/406571_327535401.shtml

     

    展开全文
  • 可以通过更改baiex怎么把...6、选择查看代码。 7、将下列代码复制到文本框中: Sub 合并当前目录下所有工作簿的全部工作表() Dim MyPath, MyName, AWbName Dim Wb As workbook, WbN As String Dim G As Long Dim Num

    可以通过更改baiex怎么把100多个EXCEL文件合并成一个
    cel代码来合并多个文件。

    详细步骤:

    1、新建du一个文件夹。

    2、将要合并的表格zhi放到里面dao。

    3、新建一个表格。

    4、用excel打开。

    5、右击Sheet1。

    6、选择查看代码。
    在这里插入图片描述

    7、将下列代码复制到文本框中:

    Sub 合并当前目录下所有工作簿的全部工作表()

    Dim MyPath, MyName, AWbName

    Dim Wb As workbook, WbN As String

    Dim G As Long

    Dim Num As Long

    Dim BOX As String

    Application.ScreenUpdating = False

    MyPath = ActiveWorkbook.Path

    MyName = Dir(MyPath & “” & “*.xls”)

    AWbName = ActiveWorkbook.Name

    Num = 0

    Do While MyName <> “”

    If MyName <> AWbName Then

    Set Wb = Workbooks.Open(MyPath & “” & MyName)

    Num = Num + 1

    With Workbooks(1).ActiveSheet

    .Cells(.Range(“B65536”).End(xlUp).Row + 2, 1) = Left(MyName, Len(MyName) - 4)

    For G = 1 To Sheets.Count

    Wb.Sheets(G).UsedRange.Copy .Cells(.Range(“B65536”).End(xlUp).Row + 1, 1)

    Next

    WbN = WbN & Chr(13) & Wb.Name

    Wb.Close False

    End With

    End If

    MyName = Dir

    Loop

    Range(“B1”).Select

    Application.ScreenUpdating = True

    MsgBox “共合并了” & Num & “个工作薄下的全部工作表。如下:” & Chr(13) & WbN, vbInformation, “提示”

    End Sub

    8、点击运行,即可成功合并。
    在这里插入图片描述

    展开全文
  • Excel终极伴侣1.291

    2009-03-19 09:01:10
    对当前Excel环境下的加载宏/加载项/VBA加载项进行列表,并可以查看相关属性、修改运行状态,甚至是一键破解。 17、Excel对象管理器,可以批量转换Excel中的对象(图片、Shape、图表等)到图片文件; 18、在Excel中...
  • Excel终极伴侣1.290

    2009-03-12 14:33:14
    对当前Excel环境下的加载宏/加载项/VBA加载项进行列表,并可以查看相关属性、修改运行状态,甚至是一键破解。 17、Excel对象管理器,可以批量转换Excel中的对象(图片、Shape、图表等)到图片文件; 18、在Excel中...
  • Excel终极伴侣1.288

    2008-11-26 16:01:36
    对当前Excel环境下的加载宏/加载项/VBA加载项进行列表,并可以查看相关属性、修改运行状态,甚至是一键破解。 17、Excel对象管理器,可以批量转换Excel中的对象(图片、Shape、图表等)到图片文件; 18、在Excel中...
  • Excel终极伴侣1.287

    2008-10-24 16:41:04
    对当前Excel环境下的加载宏/加载项/VBA加载项进行列表,并可以查看相关属性、修改运行状态,甚至是一键破解。 17、Excel对象管理器,可以批量转换Excel中的对象(图片、Shape、图表等)到图片文件; 18、在Excel中...
  • Excel终极伴侣1.286

    2008-10-14 10:56:40
    对当前Excel环境下的加载宏/加载项/VBA加载项进行列表,并可以查看相关属性、修改运行状态,甚至是一键破解。 17、Excel对象管理器,可以批量转换Excel中的对象(图片、Shape、图表等)到图片文件; 18、在Excel中...
  • Excel插件--OBS.DLL

    2008-11-27 17:05:52
    对当前Excel环境下的加载宏/加载项/VBA加载项进行列表,并可以查看相关属性、修改运行状态,甚至是一键破解。 17、Excel对象管理器,可以批量转换Excel中的对象(图片、Shape、图表等)到图片文件; 18、在Excel中...
  • 比如我做一个表格,其中一项是“部门类型”,这一项中...怎么用excel实现呢? 1. 首先做一个下拉框 2. 然后点击当前下拉框下的sheet页签,右键选择查看代码 输入以下代码 Private Sub Worksheet_Change(ByVal Ta...

    比如我做一个表格,其中一项是“部门类型”,这一项中,选项有:财务部,人事部,开发部,销售部
    用户在选择的时候,可以选择:人事部,开发部
    那么在“部门类型”这个单元格中,应该显示:人事部,开发部
    怎么用excel实现呢?

    1. 首先做一个下拉框

    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

    2. 然后点击当前下拉框下的sheet页签,右键选择查看代码

    输入以下代码

    Private Sub Worksheet_Change(ByVal Target As Range)
    Dim rngDV As Range
    Dim oldVal As String
    Dim newVal As String
    If Target.Count > 1 Then GoTo exitHandler
    
    On Error Resume Next
    Set rngDV = Cells.SpecialCells(xlCellTypeAllValidation)
    On Error GoTo exitHandler
    
    If rngDV Is Nothing Then GoTo exitHandler
    
    If Intersect(Target, rngDV) Is Nothing Then
       'do nothing
    Else
      Application.EnableEvents = False
      newVal = Target.Value
      Application.Undo
      oldVal = Target.Value
      Target.Value = newVal
      If Target.Column = 7 Then '这里规定好哪一列的数据有效性是多选的,A列是第1列,依次类推,如3就是C列,7就是G列
        If oldVal = "" Then
          'do nothing
          Else
          If newVal = "" Then
          'do nothing
          Else
            If InStr(1, oldVal, newVal) <> 0 Then  '重复选择视同删除
              If InStr(1, oldVal, newVal) + Len(newVal) - 1 = Len(oldVal) Then '最后一个选项重复
                Target.Value = Left(oldVal, Len(oldVal) - Len(newVal) - 1)
              Else
                Target.Value = Replace(oldVal, newVal & ",", "") '不是最后一个选项重复的时候处理逗号
              End If
            Else '不是重复选项就视同增加选项
            Target.Value = oldVal & "," & newVal
    '      NOTE: you can use a line break,
    '      instead of a comma
    '      Target.Value = oldVal _
    '        & Chr(10) & newVal
            End If
          End If
        End If
      End If
    End If
    
    exitHandler:
      Application.EnableEvents = True
    End Sub
    

    注意第21行,其中If Target.Column = 7表示下拉框所在的列数,如1表示A第一列,2表示B第二列,以此类推。

    3. 最后测试

    所有的多选项都会用逗号隔开,再次选择已选项会取消选择。

    展开全文
  • 继续打开前一个不能导入的excel文件仔细查看,结果在选择另存为的时候跳出来是这个样子: <img src="http://photos.album.mop.com/c03/69/6f/72/726f69778f/md_1217185480508.jpg" /> 原来发现本质是个...
  • 各位大神好,我再pandas导入本地保存的html网页数据时,报错提示 No tables founnd,网页里面是有table数据的,为... 拜托哪位大神帮忙给看看,看看要怎么修改代码,才能最后输出正常的表格形式的数据,非常感谢!
  • 比如说我使用代码生成一个文件如下代码 new File(./20201023003000.xlsx ) 那么生成的xlsx究竟放到了哪里呢?因为我是使用的docker我也看不到,于是乎想去docker内部去看一看。 首先查看容器的id docker ps 然后...
  • 同时它还支持报表Excel导出、图表显示及固定表头与左边列的功能。 欢迎加入QQ群交流:(365582678) 目录 开发环境(Development Environment) 安装与部署(Installation & Deployment) 从源代码安装(From ...
  • 1、新建一个文件夹、将要合并的表格放到里面、新建一个表格、用excel打开、右击Sheet12、选择查看代码(PS:excel有着一项,WPS没有)3、将下列代码复制到文本框中:Sub 合并当前目录下所有工作簿的全部工作表()Dim ...
  • a开发工具,代码选择组,VBb.excle厦门的sheet,右键打开查看代码vbe代码编辑工具VBE代码字体的设置编辑工具栏4. 任务1:录制宏完成高级工资条5. 一键生成统计报表没有快捷键怎么启用宏?插入按钮,把创建的宏和...
  • 从“资料整理”到“自制数据”,从“代码编写”到“文章排版”,差不多了整整一个月,只为了让大家能够更方便的学习到知识。 章节一:python 使用 openpyxl 操作 excel 1、python 怎么打开及读取表格内容? 1)...
  • NPOI读取Excel写的设计托盘软件,一直导入表格正常。...解决隐藏的方法:1、office打开表格,在表格名称处右击,弹出窗口选择查看代码。 2、选中隐藏的表格,在属性栏里将Visible改为xlSheetVisib
  • EasyExcel自定义Converter解决性别转换问题

    千次阅读 多人点赞 2020-04-28 11:26:51
    那么这篇文章继续介绍一下性别转换的问题,一般我们代码中都会使用**1/0 分别代表 男/女,可是Excel中都是"男","女"表示的,怎么做才能单独将性别转化为1和0**呢?没错还是自定义转换器! 因为这个案例有...
  • 2020-09-12

    2020-09-12 17:59:21
    这个是我某一次在工作中遇到的,当时我是百度的。现在我把这个方法编辑下来,希望能对遇到同样问题的小伙伴有帮助。...2. 右键任意一个工作表,选择查看代码,然后将下面的代码粘贴进去 Private Sub
  • python小项目--信息管理系统---新手实践

    千次阅读 热门讨论 2021-02-10 19:57:29
    除最基本的增,删,改,查,多加了一个导出为excel表格的功能。比较适合刚学完python练习基本语言代码中大部分都是使用基本语法来处理数据。 新建和查看 搜索时,界面确实不怎么美观,家庭住址这一栏也直接到...
  • 显示所有系统参数的值,并可以修改,有中文说明,oracle数据字典说明,函数说明,并且可以录入自己总结的备忘 <br/>资料,以备查看,还有帮助就是一本学习oracle的书,一步一步怎么操作,对各种对象的说明,链接其他参考...
  • 起源-版本控制

    2021-01-04 11:57:04
    这句话怎么理解,我想每个电脑的人都会有过,想修改word,excel文档等文件的时候,怕修改错了,都会将文件复制一份,以日期命名。这是很常规的操作,有需要的时候就翻一下之前日期的文件查看。很容易会造成文件...
  • 1.查看心理知识 2.向心理教师咨询心理问题:比如人际交往、家庭与婚姻、考试与学习、职业兴趣、性心理健康教育等等 3.进行心理测试,精简版免费提供以下测试:scl90心理生理卫生、你的包容力如何、自信心测试、...
  • vc++ 应用源码包_1

    热门讨论 2012-09-15 14:22:12
    代码了备份dll的方法,因此在自定义的函数中可以直接调用在内存中备份的dll代码,而不需要再把函数头部改来改去。 IOCP反弹远控客户端模型,外加上线服务端,全部代码注释! 如题。这个是IOCP远程控制软件的...
  • vc++ 应用源码包_2

    热门讨论 2012-09-15 14:27:40
    代码了备份dll的方法,因此在自定义的函数中可以直接调用在内存中备份的dll代码,而不需要再把函数头部改来改去。 IOCP反弹远控客户端模型,外加上线服务端,全部代码注释! 如题。这个是IOCP远程控制软件的...
  • vc++ 应用源码包_6

    热门讨论 2012-09-15 14:59:46
    代码了备份dll的方法,因此在自定义的函数中可以直接调用在内存中备份的dll代码,而不需要再把函数头部改来改去。 IOCP反弹远控客户端模型,外加上线服务端,全部代码注释! 如题。这个是IOCP远程控制软件的...
  • vc++ 应用源码包_5

    热门讨论 2012-09-15 14:45:16
    代码了备份dll的方法,因此在自定义的函数中可以直接调用在内存中备份的dll代码,而不需要再把函数头部改来改去。 IOCP反弹远控客户端模型,外加上线服务端,全部代码注释! 如题。这个是IOCP远程控制软件的...
  • vc++ 应用源码包_4

    热门讨论 2012-09-15 14:38:35
    代码了备份dll的方法,因此在自定义的函数中可以直接调用在内存中备份的dll代码,而不需要再把函数头部改来改去。 IOCP反弹远控客户端模型,外加上线服务端,全部代码注释! 如题。这个是IOCP远程控制软件的...

空空如也

空空如也

1 2 3
收藏数 49
精华内容 19
关键字:

excel查看代码怎么用