XLSX

使 egg-multipart 同时支持 stream 和 file

安稳与你 提交于 2020-04-07 07:46:52
项目中,上传图片是通过 stream,上传excel是通过file 接受的 config.multipart = { // fileSize: '50mb', // 文件大小 fileModeMatch: /^(\/tools\/excel\/import)$/, // '/tools/excel/import'接口使用file模式,其他使用stream模式 fileExtensions: ['.xlsx', '.xls'], } . 来源: oschina 链接: https://my.oschina.net/u/4302345/blog/3222588

数据分析:某地医院药品销售业务数据分析

不打扰是莪最后的温柔 提交于 2020-04-06 19:20:29
数据分析:某地医院药品销售业务数据分析 本篇文章以朝阳医院2018年销售数据为例,目的是了解朝阳医院在2018年里的销售情况几个业务指标 月均消费次数 月均消费金额 客单价 消费趋势 数据分析的步骤:提出问题→理解数据→数据清洗→构建模型→数据可视化 一.确定业务问题 我们知道,数据分析是指用适当的统计分析方法对收集来的大量数据进行分析,提取有用信息和形成结论而对数据加以详细研究和概括总结的过程。 那么,与之对应的数据分析基本过程包括:获取数据、数据清洗、构建模型、数据可视化以及消费趋势等 二:数据概览 # 2018 年朝阳医院数据消费金额趋势图 import matplotlib.pyplot as plt from pandas import Series,DataFrame import pandas as pd import numpy as np fileNameStr= 'F:\\Downloads\ 朝阳医院2018 年销售数据.xlsx' xls=pd.ExcelFile(fileNameStr,dtype= 'object') salesDf = xls.parse( 'Sheet1',dtype= 'object') salesDf.info() 打印结果 < class 'pandas.core.frame.DataFrame'> Range Index:

解决Java POI导出海量Excel数据内存溢出

核能气质少年 提交于 2020-04-06 17:00:56
使用POI导出Excel数据的时候有两个方法可以创建WorkBook: HSSFWorkbook:是操作Excel2003以前(包括2003)的版本,扩展名是.xls XSSFWorkbook:是操作Excel2007的版本,扩展名是.xlsx 当数据量超出65536条后,在使用HSSFWorkbook或XSSFWorkbook,程序会报 OutOfMemoryError:Javaheap space 内存溢出错误。 从POI 3.8版本开始,提供了一种基于XSSF的低内存占用的API,也就是SXSSFWorkbook。 SXSSFWorkbook-来至官方的解释:实现“BigGridDemo”策略的流式XSSFWorkbook版本。这允许写入非常大的文件而不会耗尽内存,因为任何时候只有可配置的行部分被保存在内存中。您可以提供用作书面数据基础的模板工作簿。有关详细信息,请参见https://poi.apache.org/spreadsheet/how-to.html#sxssf 请注意,仍然可能会消耗大量内存,这些内存基于您正在使用的功能,例如合并区域,注释......仍然只存储在内存中,因此如果广泛使用,可能需要大量内存。SXSSFWorkbook默认使用 内联字符串而不是共享字符串表 。这非常有效,因为没有文档内容需要保存在内存中,但也被称为制作与某些客户不兼容的文档

Python第十一章-常用模块05-openpyxl模块

我只是一个虾纸丫 提交于 2020-04-05 17:32:44
Python 常用模块 五、openpyxl ​ openpyxl模块是一个读写Excel 2010文档的Python库,如果要处理更早格式的Excel文档,需要用到额外的库,openpyxl是一个比较综合的工具,能够同时读取和修改Excel文档。 5.1.安装openpyxl模块 pip3 install openpyxl 或者 在pycharm中直接安装 5.2. openpyxl的基本用法 ​ 想要操作Excel首先要了解Excel 基本概念,Excel中列以字幕命名,行以数字命名,比如左上角第一个单元格的坐标为A1,下面的为A2,右边的B1。 ​ openpyxl中有三个不同层次的类,Workbook是对工作簿的抽象,Worksheet是对表格的抽象,Cell是对单元格的抽象,每一个类都包含了许多属性和方法。 操作Excel的一般场景: 打开或者创建一个Excel需要创建一个Workbook对象 获取一个表则需要先创建一个Workbook对象,然后使用该对象的方法来得到一个Worksheet对象 如果要获取表中的数据,那么得到Worksheet对象以后再从中获取代表单元格的Cell对象 5.2.1 Workbook对象 ​ 一个Workbook对象代表一个Excel文档,因此在操作Excel之前,都应该先创建一个Workbook对象。对于创建一个新的Excel文档

服务器软件登录数量限制 批量服务器怎么登录

笑着哭i 提交于 2020-03-25 16:12:06
3 月,跳不动了?>>> 多用户同时登录一般都是指通过网络登录,windows中可以安装终端服务器,实现多用户操作。系统会为每个用户分配独立的内存空间,和其他用户互不影响,在终端服务器中还可以实现多用户之间的通信,如消息发送。 服务器软件登录数量限制有没有呢?肯定是有的,这个要看不同的软件, 这个《iis7批量远程桌面》工具的问世正好可以解决服务器软件登录数量限制这个问题,它可以做到批量登陆管理3389服务器,批量登陆多台服务器必备,一次性登陆多台,省去输入帐号密码的困扰!不知道批量服务器怎么登录的小伙伴可以看看下面的文章 iis7远程桌面连接工具,又叫做iis7远程桌面管理软件,是一款绿色小巧,功能实用的远程桌面管理工具,其界面简洁,操作便捷,能够同时远程操作多台服务器,并且多台服务器间可以自由切换,适用于网站管理人员使用。下面带大家具体的了解远程桌面连接工具——IIS7远程桌面连接工具。 查看地址: iis7远程桌面管理工具下载 那么这个软件如何使用呢? 首先下载解压软件,因为本软件是绿色软件,免安装,所以解压后直接双击“IIS7 远程桌面管理.exe ”就可以看到程序的主界面了: 然后在界面的中间偏右的部分会看到“添加机器”,单击打开之后会看到: 在这里添加服务器的详细信息, 在这里一定要填写的是【服务器IP 和端口】、【服务器账号】、【服务器密码】下图所标记的地方: 【注意

SpringBoot打成jar包部署,Excel模板下载文件遇到的问题

删除回忆录丶 提交于 2020-03-16 18:46:20
某厂面试归来,发现自己落伍了!>>> 问题一. 读取resource 目录下文件时出现路径找不到 在本机测试都很顺利,当打包jar文件放到服务器上测试的时候发现了类似下面的异常信息: java.nio.file.NoSuchFileException: file:/app.jar!/BOOT-INF/classes!/xxx.xlsx 原因:spring boot 将项目打包为jar,使用 java - jar 包名 在服务器上运行。此时文件为打包文件,所以不能通过路径获取到文件。类似不能读取压缩包中的文件,必须先解压缩。结论:spring boot 中的文件只能通过流来进行读取。 可以通过以下方法进行流的读取。 InputStream in = this.getClass().getClassLoader().getResourceAsStream("xxx.xlsx"); 问题二. Excel模板下载文件损坏 在本机测试都很顺利,当打包jar文件放到服务器上时下载完文件提示文件损坏 问题原因分析: 一开始度娘查到各种各样的说法,比如修改response请求回应头,比如使用ByteArrayHttpMessageConverter,比如修改文件读取方式,没点屁用!! 后面看到另外一篇文章,maven 打包的时候,使用了filter,其原理是处理文本文件,并将其替换变量

Java中使用POI读取大的Excel文件或者输入流时发生out of memory异常参考解决方案

こ雲淡風輕ζ 提交于 2020-03-16 18:27:18
某厂面试归来,发现自己落伍了!>>> 注意:此参考解决方案只是针对xlsx格式的excel文件! 背景 前一段时间遇到一种情况,服务器经常宕机,而且没有规律性,查看GC日志发生了out of memory,是堆溢出导致的,分析了一下堆的dump文件,发现在发生OOM时创建了大量的String对象。最后对照时间点,发现宕机的时候业务人员在上传一个excel文件,但是这个excel文件才28MB大小,感觉应该不会引起内存溢出。后来在本地启动了服务,然后尝试上传这个excel文件,同时使用Java VisualVM监控GC情况,发现在上传的时候,创建了大量的String对象,后来老年代没有可分配空间导致了OOM。最终分析结果是,excel文件中存在几十万的空行数据,表面上看,这些空行数据跟不存在数据的行是一样的,但是POI会把这种空行数据读入到内存中,感觉这也是一个坑。 在网上搜了很长时间,发现国内网站上的解决方案真是没法看,基本上答案都差不多,没有什么有见解性的解决方法,后来在stackoverflow上找到了解决方法。算是给自己做一下备注,也想帮助一些还在坑里的人,就分享一下,只是自己的见解,有不得当的地方也请见谅。 常规读取方法 通常在读取excel文件时(.xlsx),是使用如下代码进行加载的: FileInputStream fi = new FileInputStream(

为excel文档设置mime类型

早过忘川 提交于 2020-03-07 14:33:51
MS Excel具有以下观察到的MIME类型: application/vnd.ms-excel (官方) application/msexcel application/x-msexcel application/x-ms-excel application/x-excel application/x-dos_ms_excel application/xls application/x-xls application/vnd.openxmlformats-officedocument.spreadsheetml.sheet (xlsx) 是否有任何一种适用于所有版本的类型? 如果没有,我们是否需要分别为这些mime类型中的每一个设置 response.setContentType() ? 此外,我们在应用程序中使用文件流来显示文档(不仅仅是excel - 任何类型的文档)。 这样做,如果用户选择保存文件,我们如何保留文件名 - 目前,呈现文件的servlet名称显示为默认名称。 #1楼 我在这里唤醒了一个旧线程,但我觉得有必要添加“新”.xlsx格式。 根据 http://filext.com/file-extension/XLSX,.xlsx 的扩展名为 application/vnd.openxmlformats-officedocument.spreadsheetml

jquery读取本地excle里的数据

不打扰是莪最后的温柔 提交于 2020-03-07 01:06:25
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta http-equiv="X-UA-Compatible" content="ie=edge"> <title>Document</title> </head> <body> <input id="lefile" type="file" > <button type="button" id="button-next">确认</button> </body> <script src="./xlsx-master/xlsx-master/xlsx.full.min.js"></script> <script src="http://libs.baidu.com/jquery/2.1.4/jquery.min.js"></script> <script> var fileType = 0; //默认0(0不正确,1正确) var wb; //读取Excel的数据 var rABS = false; //是否将文件读取为二进制字符串 var excelTab; //Excel $("#lefile").on(

R语言安装xlsx包踩坑

北战南征 提交于 2020-03-03 15:26:41
R安装xlsx包踩坑 问题原因: 报错问题: 直接install.packages(“xlsx”)安装不上 载入需要的程辑包:rJava Error : loadNamespace()里算’rJava’时.onLoad失败了,详细内容: 调用: fun(libname, pkgname) 错误: JAVA_HOME cannot be determined from the Registry 错误: 无法载入程辑包‘rJava’ 原因: 可能是电脑未安装 java 解决方法 1.安装java 安装最新版本的java。如果你用的R是64位的,请下载64位java。 下载地址: http://www.java.com/en/download/manual.jsp 下载windows offline(64) 要安装在 C:\Program Files\Java 下面** [for 64-bit version library(rJava)] ; win8的尤其小心不要安装为C:\Program Files(x86)。 [(x86) for 32-bit version library(rJava)]**: 在R中加载环境,即一行代码,路径要依据你的java版本做出更改。 Sys.setenv(JAVA_HOME=‘C:\Program Files\Java\jre1.8.0_45\’)