精华内容
下载资源
问答
  • HSSF生成EXCEL表格学习分享

    千次阅读 2020-03-14 14:57:11
      最近这周刚安排了一个需求是生成一个EXCEL表格,目前没有做过生成EXCEL相关的代码开发,就参考项目中下载EXCEL功能的代码,以及百度搜素。最后花了我一天时间终于琢磨透这块内容,然后,觉得这块内容挺有意思,...

      最近这周刚安排了一个需求是生成一个EXCEL表格,目前没有做过生成EXCEL相关的代码开发,就参考项目中下载EXCEL功能的代码,以及百度搜素。最后花了我一天时间终于琢磨透这块内容,然后,觉得这块内容挺有意思,就想着写篇博客记录下学习心得,也方便以后不会了查看自己的博客回顾下,反正代码这东西都是学着忘着,必须得时刻把知识记录下来。所以写一篇拥有自己思路的文章还是很重要的,这样能很快回顾学习知识及找到解决思路。行了,话不多说,开始今天的学习分享了!
      生成EXCEL表格会用到org.apache.poi包,这个包里有一些基本的操作类。首先,先给大家展示下需求中需要生成什么格式的EXCEL表格。
    需求表格样式
      从需求分析大可得出表有8列,表的结构分为五部分,第一部分是:“红利通知书退信清单”大标题,此标题占了整个8列;第二部分是:“统计机构”数据区域,此标题占了整个8列;第三部分是:“红利派发区间”数据区域,此标题占了整个8列;第四部分是:标题区域,第五部分是:数据行区域。
      分析完之后就开始根据整理出的分析开发代码。先开发第一部分,代码如下:

    				HSSFWorkbook wb = new HSSFWorkbook();
    				//第一步:在workbook中添加一个sheet,对应Excel文件中的sheet
    				HSSFSheet sheet = wb.createSheet();
    				wb.setSheetName(0, excelName, (short) 1);// 给sheet工作簿设置编码格式(short)1
    															// 代表UTF-16
    				
    				//-------------------------表头信息开始--------------------------------
    				//第二步:在sheet中添加表头信息
    				//第一行:展示红利通知书退信清单大标题
    				//设置标题字体
    				HSSFFont row1_CellFont = wb.createFont();
    				row1_CellFont.setColor(HSSFFont.COLOR_NORMAL);
    //				row1_CellFont.setBoldweight(HSSFFont.BOLDWEIGHT_BOLD);
    				row1_CellFont.setFontHeight((short) 400);
    				//设置第一行标题样式
    				HSSFCellStyle row1_style = wb.createCellStyle();
    				row1_style.setBorderBottom(HSSFCellStyle.BORDER_THIN);
    				row1_style.setBorderLeft(HSSFCellStyle.BORDER_THIN);
    				row1_style.setBorderTop(HSSFCellStyle.BORDER_THIN);
    				row1_style.setBorderRight(HSSFCellStyle.BORDER_THIN);
    				row1_style.setAlignment(HSSFCellStyle.ALIGN_CENTER); // 创建一个居中格式
    				row1_style.setFont(row1_CellFont);
    				
    				HSSFRow row1 = sheet.createRow(0);
    				//因为有8列,所以循环创建出空的单元格,目的为合并单元格后有边框
    				for (int i = 0; i < 8; i++) {
    					HSSFCell row1_cell = row1.createCell((short) i);
    					if(i == 0) {
    						row1.getCell((short) i).setEncoding(HSSFCell.ENCODING_UTF_16);
    						row1_cell.setCellValue("红利通知书退信清单");
    						row1_cell.setCellStyle(row1_style);
    					}else {
    						row1_cell.setCellStyle(row1_style);
    					}
    				}
    				//合并单元格
    				sheet.addMergedRegion(new Region(0,(short)0,0,(short)7));
    

      代码中有一处循环是为了解决合并单元格后无边框问题,如果不做这个循环处理合并单元格后会出现无边框问题,(这个问题困扰了我很久,花很长时间上网百度搜索,但是还是没能找到可以解决的方法,这个循环方法是我自己想到后试了下,发现可以解决无边框问题,但是这个方法我感觉不太好,希望大神们评论留言)。
      因为项目中poi包版本较低,所以调用合并单元格时,用的是Region类,Region类使用方法如下:
      跨第1行第1个到第2个单元格的操作为
      sheet.addMergedRegion(new Region(0,(short)0,0,(short)1));
      而目前从POI 3.18开始被Deprecated,在3.20版本中被移除了,所以3.20以前的都有,为了避免这个问题,用  CellRangeAddress代替Region,其用法相同,用法如下:
      CellRangeAddress(int firstRow, int lastRow, int firstCol, int lastCol
      参数:起始行号,终止行号, 起始列号,终止列号

      无边框如图:
    无边框
      处理完之后:
    在这里插入图片描述
      接下来开发第二部分,同样为了解决无边框问题用到了循环处理代码入下:

    				//设置第二行展示信息
    				//统计机构:XXXXX
    				HSSFCellStyle dataStyle = wb.createCellStyle();
    				dataStyle.setBorderBottom(HSSFCellStyle.BORDER_THIN);
    				dataStyle.setBorderLeft(HSSFCellStyle.BORDER_THIN);
    				dataStyle.setBorderTop(HSSFCellStyle.BORDER_THIN);
    				dataStyle.setBorderRight(HSSFCellStyle.BORDER_THIN);
    
    				HSSFRow row2 = sheet.createRow(1);
    				for (int i = 0; i < 8; i++) {
    					HSSFCell row2_cell = row2.createCell((short) i);
    					if(i == 0) {
    						row2.getCell((short) i).setEncoding(HSSFCell.ENCODING_UTF_16);
    						row2_cell.setCellValue("统计机构:" + manageCom);
    						row2_cell.setCellStyle(dataStyle);
    					}else {
    						row2_cell.setCellStyle(dataStyle);
    					}
    				}
    				//合并单元格
    				sheet.addMergedRegion(new Region(1,(short)0,1,(short)7));
    

      接下来开发第三部分,同样为了解决无边框问题用到了循环处理代码如下:

    				//设置第三行展示信息
    				//红利派发区间:XXXX至XXXX
    				HSSFRow row3 = sheet.createRow(2);
    				for (int i = 0; i < 8; i++) {
    					HSSFCell row3_cell = row3.createCell((short) i);
    					if(i == 0) {
    						row3.getCell((short) i).setEncoding(HSSFCell.ENCODING_UTF_16);
    						row3_cell.setCellValue("红利派发区间:" +startDate1+ " 至 "+endDate1);
    						row3_cell.setCellStyle(dataStyle);
    					}else {
    						row3_cell.setCellStyle(dataStyle);
    					}
    				}
    				//合并单元格
    				sheet.addMergedRegion(new Region(2,(short)0,2,(short)7));
    

      接下来开发第四部分,在开发此部分时,参考项目中的代码那个人在生成标题时,写的代码比较繁琐(手写创建了具体哪个单元格),后来也是上网百度时发现很多人写的这种方法又简洁又方便,创建一个数组去存放标题,不管以后增减列还是减少列,只需改动数组存放的内容即可。代码如下:

    				//设置第四行数据 标题
    				//设置标题字体
    				HSSFFont row4_CellFont = wb.createFont();
    				row4_CellFont.setColor(HSSFFont.COLOR_RED);
    				row4_CellFont.setBoldweight(HSSFFont.BOLDWEIGHT_BOLD);
    				//设置第四行标题样式
    				HSSFCellStyle row4_style = wb.createCellStyle();
    				row4_style.setBorderBottom(HSSFCellStyle.BORDER_THIN);
    				row4_style.setBorderLeft(HSSFCellStyle.BORDER_THIN);
    				row4_style.setBorderTop(HSSFCellStyle.BORDER_THIN);
    				row4_style.setBorderRight(HSSFCellStyle.BORDER_THIN);
    				row4_style.setAlignment(HSSFCellStyle.ALIGN_CENTER); // 创建一个居中格式
    				row4_style.setFont(row4_CellFont);
    				
    				HSSFRow row4 = sheet.createRow(3);
    				//第四行标题名称
    				String str[] = {"管理机构","保单号","投保人","红利派发日期","红利派发金额","退信原因","寄送地址","邮编"};
    				for (int i = 0; i < str.length; i++) {
    					HSSFCell row4_cell = row4.createCell((short) i);
    					row4.getCell((short) i).setEncoding(HSSFCell.ENCODING_UTF_16);
    					row4_cell.setCellValue(str[i]);
    					row4_cell.setCellStyle(row4_style);
    				}
    

      接下来开发第五部分,SSRS类、ListTable类都是公司项目封装的工具类,SSRS类是用来存放数据交互完成后查询到的值,这两个类其实底层都是用Vector实现的。因为目前比较盛行用ArrayList,所以在对查询到的数据进行处理时,大家可以使用ArrayList替代。循环处理数据,将每一行数据存放在一个String数组中,再把数组存放到动态数组中。最后,循环动态数组,展示每一行数据。(因为sheet已经创建了四行,所以直接从第五行开始插入数据行),代码如下:

    		SSRS ssrs = exeSQL.execSQL(infoSQL);
    		
    		ListTable listTable = new ListTable();
    		for(int i = 1;i <= ssrs.getMaxRow();i++){
    			String[] row = new String[8];//存放一行的数据
    		    row[0] = ssrs.GetText(i, 1);
    		    row[1] = ssrs.GetText(i,2);
    		    row[2] = ssrs.GetText(i, 3);
    		    row[3] = ssrs.GetText(i, 4);
    		    row[4] = ssrs.GetText(i, 5);
    		    row[5] = ssrs.GetText(i, 6);
    		    row[6] = ssrs.GetText(i, 7);
    		    row[7] = ssrs.GetText(i, 8);
    		    listTable.add(row);		
    		}
    		// 第三步,创建除表头外的数据行单元格,并放数据
    		for (int j = 0; j < listTable.size(); j++) {
    			//从第五行开始放数据
    			HSSFRow row = sheet.createRow(j + 4);
    			// 留意ListTable.get(j).length
    			for (int k = 0; k < listTable.get(j).length; k++) {
    				if (listTable.get(j)[k] != null) {
    					// 遍历数据并设置单元格编码
    					HSSFCell cellk = row.createCell((short) (k));
    					row.getCell((short) (k)).setEncoding(HSSFCell.ENCODING_UTF_16);
    					cellk.setCellValue(listTable.get(j)[k]);
    					cellk.setCellStyle(dataStyle);
    				} else {
    					HSSFCell cellk = row.createCell((short) (k));
    					cellk.setCellValue(" ");
    					cellk.setCellStyle(dataStyle);
    				}
    			}
    		}
    

      至此表格已经生成完成,信息展示如图:
    成果图

    展开全文
  • Excel 使用技巧集锦 163 种技巧 基本方法 快速选中全部工作表 右键单击工作窗口下面的工作表标签 在弹出的菜单中选择 选定全部工作表命令即可 快速启动 Excel 如果想在启动系统自动运行 Excel 可以这样操作 : 1....
  • 文章目录前言一....合理的使用Python处理Excel表格文件,可以让我们高效的筛选和处理数据,节省我们大量的工作时间。 一. openpyxl模块安装 方法一 win + r 输入cmd 打开命令窗口输入: pip install openpyxl


    前言

    合理的使用Python处理Excel表格文件,可以让我们高效的筛选和处理数据,节省我们大量的工作时间。

    一. openpyxl模块安装

    方法一

    win + r 输入cmd 打开命令窗口输入:

    pip install openpyxl
    

    在这里插入图片描述

    方法二

    Pycharm软件内安装
    在这里插入图片描述

    二. 表格的创建

    from openpyxl import Workbook
    wb = Workbook()  #在内存中创建一个表格
    ws = wb.active   #表格页
    print(ws.title)
    ws.title ="汤米先生的书库"   #表格页名字
    ws["A1"]="书名"          #在相应位置写入内容
    ws["B1"]="数量"
    ws["C1"]="添加时间"
    ws.append(["水浒传","2",datetime.datetime.now().strftime("%Y-%m-%d")])   #在已有的内容的下一行的第一个格开始添加
    wb.save("测试表格.xlsx")    #将表格保存到文件,若文件已经存在,会覆盖原有文件
    
    

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

    三. 遍历excel数据

    方式一:切片遍历

    from openpyxl import workbook,load_workbook
    wb =load_workbook("测试表格.xlsx")   #打开表格文件
    sheet = wb["汤米先生的书库"]          #选中表格页
    
    for cell in sheet["A1:A4"]:			#选择遍历的范围
        print(cell[0].value)
    

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

    方式二:按行遍历

    from openpyxl import workbook,load_workbook
    wb =load_workbook("测试表格.xlsx")   #打开表格文件
    sheet = wb["汤米先生的书库"]          #选中表格页
    
    
    for row in sheet:
        for cell in row:
            print(cell.value,end=" ")
        print()
    

    在这里插入图片描述

    方式三:按列遍历

    from openpyxl import workbook,load_workbook
    wb =load_workbook("测试表格.xlsx")   #打开表格文件
    sheet = wb["汤米先生的书库"]          #选中表格页
    
    for column in sheet.columns:
        for cell in column:
            print(cell.value,end=",")
        print()
    

    在这里插入图片描述

    方式四:指定行&列遍历

    from openpyxl import workbook,load_workbook
    wb =load_workbook("测试表格.xlsx")   #打开表格文件
    sheet = wb["汤米先生的书库"]          #选中表格页
    
    # 从第1行到第5行,每行打印5列
    for row in sheet.iter_rows(min_row=1,max_row=5,max_col=3):
        for cell in row:
            print(cell.value,end=",")
        print()
    

    在这里插入图片描述

    方式五:遍历指定几列的数据

    from openpyxl import workbook,load_workbook
    wb =load_workbook("测试表格.xlsx")   #打开表格文件
    sheet = wb["汤米先生的书库"]          #选中表格页
    
    #取得第2列-第5列的数据
    for col in sheet.iter_cols(min_col=1,max_col=5):
        for i in col:
            print(i.value,end=",")
        print()
    

    在这里插入图片描述

    四. 设置数据样式

    需要导入的类

    from openpyxl.styles import Font,colors,Alignment
    

    修改字体格式

    from openpyxl import workbook,load_workbook
    from openpyxl.styles import Font,colors,Alignment
    wb =load_workbook("测试表格.xlsx")   #打开表格文件
    sheet = wb["汤米先生的书库"]          #选中表格页
    
    #等线,24号,斜体,红色,粗体样式
    bold_itatic_24_font=Font(name='等线',size=24,italic=True,color=colors.BLUE,bold=True)
    #将样式赋给A1
    sheet["A1"].font=bold_itatic_24_font
    #保存文件
    wb.save("测试表格.xlsx")
    

    在这里插入图片描述

    对齐方式

    #B1处垂直居中且水平居中
    sheet['b1'].alignment =Alignment(horizontal='center',vertical='center')
    

    行高列宽

    #第二行行高40
    sheet.row_dimensions[2].height=40
    #c列列宽30
    sheet.column_dimensions['C'].width =30
    
    展开全文
  • EXCEL表格设计

    2014-09-26 22:02:33
    EXCEL表格学习,培训教学,提高
  • excel表格专题复习讲解学习.ppt
  • Excel 2003是Microsoft Office 2003办公套装软件的重要组成部分是一个通用的电子表格制作软件具有强大的电子表格处理功能 利用该软件用户不仅可以制作各类精美的电子表格还可以用来组织计算和分析各种类型的数据方便...
  • 新编Excel表格处理学习课程共46页文档.ppt
  • Excel表格模板素材.zip

    2020-03-14 08:24:27
    Excel表格模板素材,希望给能够学习者提供帮助,实现对计算机Excel表格基础知识的掌握与理解,为后续学习做好铺垫,实现Excel表格知识的灵活运用
  • excel表格操作

    2013-12-26 12:39:15
    基于mfc对话框的程序,操作excel 通过输入参数生成excel表格 在此基础上做零时需要的时候比较方便。或者学习excel的读写也不错。
  • 最近由于要交论文和一系列的报告才不得不做试验,...这个时候就牵涉到了如何将python直接处理的得到的数据存入excel表格当中,之后计算的时候也要从Excel表格当中读出这些数据来,接下来讲一下自己在这个过程中的一些学

           最近由于要交论文和一系列的报告才不得不做试验,中间需要处理一堆的数据,这些数据之前一直都是存放在了txt文件当中的,但是由于需要统计每一维特征之间的联系发现新的特征用于机器学习模型的建立,不得不借助于Excel强大的统计分析能力,这个时候就牵涉到了如何将python直接处理的得到的数据存入excel表格当中,之后计算的时候也要从Excel表格当中读出这些数据来,接下来讲一下自己在这个过程中的一些学习心得与体会,欢迎大家指教

          python中有两个用于Excel的包,分别是xlwt(负责数据的写入),xlrd(负责数据的读出)

          

    这是我简单的建立一个名为file.xls的文件

    filedata = xlrd.open_workbook('file.xls')
    print 'The type of the data is :', type(filedata)

    可以查看我的file文件的数据类型


    打开文件,结果如下:


    获取一个表有三种方式:通过索引顺序获取、索引号获取、名称获取

    sheet = filedata.sheets()[索引号]

    sheet = filedata.sheet_by_index(索引号)

    sheet = filedata.sheet_by_name(u'表名')


    展开全文
  • excel表格应用

    2014-03-23 11:17:01
    也许你已经在Excel中完成过上百张财务报表,也许你已利用Excel函数实现过上千次的复杂运算,也许你认为Excel也不过如此,甚至了无新意。但我们平日里无数次重复...下面就是学习啦为大家整理的Excel表格的35招必学秘技:
  • 手把手学习Excel电子表格

    千人学习 2019-05-13 15:30:56
    -涉及排序、筛选、函数公式、数据透视表、图表、汇总等核心功能的课程编排,通俗易懂不头疼 -互动+观看视频,两种学习方式切换,上班路上,地铁里享受随时随地自由学习 通过本课程的学习,您将逐步掌握Excel 2016的...
  • Excel表格制作

    2020-07-24 09:02:49
    excel表格制作是个大众类的办公软件,很多上班族之前并不会,工作上的需要也必须学会,其实制作方法很简单,下面Leo为大家带来excel初期教程,还未接触过的用户会比较适合,过程简单,易懂,从初期逐步学习,...

    excel表格制作是个大众类的办公软件,很多上班族之前并不会,工作上的需要也必须学会,其实制作方法很简单,下面Leo为大家带来excel初期教程,还未接触过的用户会比较适合,过程简单,易懂,从初期逐步学习,持之以恒才可以海纳百川,新用户快来学习下制作简单表格吧!

    1.新建一个excel文件。

    2.在草纸上画好草稿,将需要数据的表格样式及列数和行数确定。比如我需要建立一个五行六列的表格,最上面是标题行。

    3.在新建excel中,用鼠标选中需要的表格行数列数,然后点右键,“设置单元格格式”——“边框”,在“预置”中根据需要选择“外边框”、“内部”边框。

    4.根据需要加边框。如果是标题处,可以取消外边框,合并横向或者纵向的表格。方法也是先选中需要设置的表格(第一行),然后右键点击“设置单元格格式”——“对齐”,然后选中“合并单元格”。

    5.根据标题长度、宽度调整一下标题行。如我的标题是“XXXXXX公司表”题目比较长,将标题行拉宽,设置“自动换行”方法如上图,然后根据需要左右缩进,调整居中,然后设置字体大小等。

    看调整前的图表:

    根据字体调整表,如图:

    6.其他空格内容填好后,同样根据内容调整一下就可以。

    7.如果需要打印,就要设置页面了。我们这个表一看就是横向的,所以选择“文件”–“页面设置”,选择“横向”,然后打印预览一下。如果要求居中打印但是表格处于页面左上角,就调整一下页边距。调整好位置后打印即可。

    8.如果需要将此表插入到word文档以便其他使用,也很简单。先将刚做好的Excel表格保存为一个文件名《设备表》到桌面上。将此页的页面设置成横 向,否则表格会显示不全的。在Word文档中需要插入的地方,点击一下鼠标,然后选择上面“插入”—“对象”——“由文件创建”,然后找到刚刚保存的 《设备表》,插入,确定,然后就插入到Word中了。效果图如下:

    关于Excel新用户表格制作的简单教程就分享到这了,大家学会怎么制作简单的表格了吗?大家可以关注Excel宝典网,里面有更多精彩的Excel教程带给大家。

    展开全文
  • Excel表格实用技巧大全 一让数据显示不同颜色 在学生成绩分析表中如果想让总分大于等于500 分的分数以蓝色显示小于500 分 的分数以红色显示操作的步骤如下首先选中总分所在列执行格式条件格式在 弹出的条件格式...
  • MATLAB生成excel表格

    万次阅读 多人点赞 2018-11-13 18:26:00
    利用excel对数据进行复杂处理有一定局限性,于是选择导入MATLAB进行处理。此贴针对MATLAB将数据导出至excel,列举一些简单的例子,帮助大家学习
  • mlp 训练多个excel表格

    2018-09-29 14:44:46
    自己的多个excel表格中的数据,用mlp来读取并且进行分类,好多人可能对于多个Excel表格中的数据不知道如何去读取。包括CNN等对于多个excel表格中的数据输入也可以联系我。
  • Excel表格在财务会计的应用基本操作学习笔记一.doc
  • 主要介绍了Python使用OpenPyXL处理Excel表格,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
  • C#学习之操作excel表格

    千次阅读 2015-10-18 01:21:04
     今天开始学习C#使用Excel。  首先,要先添加引用:  若发现没有这个项,可以重新安装office,我这里使用的是office2013: 若发现还是没有在引用中找到对应的项,可尝试添加VS的功能:关于office的功能组件。...
  • 学习python的时候写的用python来处理excel表格的20个函数(包括批量提取表格数据,批量处理表格数据等),内含详细注释和说明,可用于python自动化办公入门学习
  • 导出Excel表格文件

    2012-07-02 10:32:50
    用Gridview导出Excel表格文件,帮助我们学习其中的代码
  • 因为我用的是mac上的excel 2016,而谷老师讲的时候用的是win 下的excel 2013,所以存在一些快捷键上的不同。 选择类快捷键 序号 功能 快捷键 演示 1 快速跳到表格的四角 command+方向键 ...
  • SpringBoot读取excel表格

    2020-10-23 10:27:51
    文章目录SpringBoot读取excel表格pom.xml依赖POIUtils工具类controller测试注意问题 SpringBoot读取excel表格 共同探讨,向各位大佬学习 走向CEO,迎娶白富美 pom.xml依赖 <!--springboot核心依赖--> <...
  • 【Python学习】xlwt框架操作excel表格

    千次阅读 2016-08-13 00:04:51
    如果能将数据写入excel表格中,那是在好不过了?为了实现这个需求。。。。故而特地写了文章来记录将数据写入excel表格中的爬虫程序。 具体代码: #coding:utf8 ''' Created on 2016年8月12日 @author: ...
  • 当然第一步就是需要我们打开excel表格文档,进入到我们需要打印信息表格界面,我在这里用简单数据表格信息进行演示。 如图: 然后我们在excel上方菜单工具栏当中点击“文件”。 如图: 点击进入到...
  • 前面我们已经学到了很多Python在...今天南京小码王Python培训班老师就来教教大家如何用Python处理Excel表格,快来动手试试看吧。基本使用方法1.首先导入模块:import openpyxl2.打开一个已经存在的excel文件:wb=...
  • python处理excel表格数据 方法一 你好! 这是你第一次使用 Markdown编辑器 所展示的欢迎页。如果你想学习如何使用Markdown编辑器, 可以仔细阅读这篇文章,了解一下Markdown的基本语法知识。 excel表格数据筛选功能 ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 36,639
精华内容 14,655
关键字:

excel表格学习