需求:将某个excel中的某一列列宽设置为35(该数值是Excel中显示的列宽值)。

poi中设置列宽的方法为:

HSSFSheet.setColumnWidth(int columnIndex, int width);

第一个参数好理解–列序号,关键是第二个参数宽度的值,应该设置为多少呢?

我做了以下尝试,发现均不好使

sheet.setColumnWidth(0, 35); //a

sheet.setColumnWidth(0, (int)35.7*35); //b

sheet.setColumnWidth(0, 256*35); //c

查了以下,上面c这种写法比较接近想要的结果,因为setColumnWidth这个方法宽度的单位是字符数的256分之一,但是我想要点开Excel查看那一列的宽度时就显示35,而不是34.29。如何比较精确地设置列宽呢?我想到了拟合方程这四个字。

所谓拟合是指已知某函数的若干离散函数值{f1,f2,…,fn},通过调整该函数中若干待定系数f(λ1, λ2,…,λn),使得该函数与已知点集的差别(最小二乘意义)最小。(来自百度百科)

说白了就是给你几个离散点,让你找规律,求出这些点满足的函数表达式y=f(x)。有人要说了,这玩意上学的时候都没学会,现在更不会求了。没关系,我们可以借助软件的力量。最简单的软件就是Excel了。

说干就干。先尝试以下设置

sheet.setColumnWidth(0, 9100);

sheet.setColumnWidth(0, 9150);

sheet.setColumnWidth(0, 9200);

sheet.setColumnWidth(0, 9250);

sheet.setColumnWidth(0, 9300);

sheet.setColumnWidth(0, 9350);

将生成的Excel的对应列的实际宽度记录下来:

[34.86,35,35.29,35.43,35.57,35.86]

以实际宽度为自变量x,你给的值为函数值y,得到一系列离散点:(34.86,9100)(35,9150)(35.29,9200)(35.43,9250)(35.57,9300)(35.86,9350)

新建一个工作表,将数据输入

x

y

34.86

9100

35

9150

35.29

9200

35.43

9250

35.57

9300

35.86

9350

选中这些数据,点插入->图表->散点图,数据有了之后,再添加趋势线,选线性,并显示公式,结果如图

好我们得到了y与x的关系,接下来代码里就该这样设置了:

sheet.setColumnWidth(0, 252*width+323);//width=35

但是这个公式并不十分准确,比如当width=9时,生成的Excel实际宽度却是9.43,怎么办?多取一些点再进行拟合。

于是有了下面的结果:

最后我们的表达式为:y=255.86x+184.27

代码里这样设置

sheet.setColumnWidth(0, 256*width+184);

这次就比较精确了。

java设置excel行间距_java用POI设置Excel的列宽相关推荐

  1. java excel 透视_java基于poi导出excel透视表代码实例

    这篇文章主要介绍了java基于poi导出excel透视表代码实例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 从前,我是一个前端程序猿,怀着对打通 ...

  2. poi导出excel 损坏_Java使用POI生成Excel文件后打不开的问题

    在实际的工作中,有时会遇到获取数据后需要存入Excel文件的情况.但是,在生成Excel文件后,发现无法正常打开该文件. 例如:以当前的时间点为文件名,新生成一个Excel文件.先来看看下面一段代码. ...

  3. java excel 电话号码_java使用poi读取excel时,电话号码变成了科学计数法,整数变成double,怎么改过来...

    为了防止数字变成科学计数法方式表示,在源文件以及java代码中都用文的方式去生成和解回析excel,具体答如下: 生成Excel时,设置单元格格式为STRING,即: //关键代码 HSSFCell  ...

  4. java excel 空行_java使用poi删除excel中的空行

    根据自己实际操作,poi中lastRowNum方法获取行数的是excel最后有数据的一行,从0开始 而physicalNumberOfRows方法获取的行数是excel最后有数据的一行减去最后一行之前 ...

  5. java导出excel表格设置行高,POI导出Excel设置单元格格式

    使用Apache的POI相关API导出Excel设置单元格格式 栗子,一下各个代码之间的变量是通用的,要是在某个代码块中找不到某个变量,则可以向上找寻 准备工作 InputStream = templ ...

  6. java poi 读取excel 编码_Java使用POI 读取和写入Excel指南

    做项目时经常有通过程序读取Excel数据,或是创建新的Excel并写入数据的需求:网上很多经验教程里使用的POI版本都比较老了,一些API在新版里已经废弃,这里基于最新的Apache POI 4.0. ...

  7. POI导出Excel:设置字体、颜色、行高自适应、列宽自适应、锁住单元格、合并单元格...

    点击关注公众号,利用碎片时间学习 1. 前言 poi框架可以支持我们在java代码中, 将数据导出成excel , 在实际开发中, 往往还需要设置excel字体,颜色,行高,列宽等属性, 有时候还需要 ...

  8. JAVA怎么才能强制换行_Java利用POI生成Excel强制换行(转载)

    使用POI创建一个简单的 myXls.xls 文件 常用的包为 org.apache.poi.hssf.usermodel.*; 例子: import java.io.*; import org.ap ...

  9. java excel 导出图片_JAVA 使用 POI 导出 EXCEL 自定义背景颜色

    开发中常用表格导入和导出 Excel 是常见的功能. 在这里分享下使用 POI 导出表格的简单实现,也是为大家提供个思路吧,抛砖引玉,话不多说直接上代码. 1.项目引入 maven 依赖 <!- ...

最新文章

  1. jQuery可放大预览的图片滑块
  2. C++:20---类模板(template)
  3. IntelliJ IDEA 2020.1 快速查找文件
  4. express中间件系统的基本实现
  5. 项目知识学习篇———PostgreSQL数据库
  6. Design Pattern 设计模式【观察者】
  7. win7 C盘空间越来越小 Windows文件夹变大的问题
  8. react-native 适配问题
  9. thinkphp生成的验证码不显示问题解决
  10. 【路径规划】基于matlab任意架次植保无人机作业路径规划【含Matlab源码 322期】
  11. 黑塞矩阵 Hessian Matrix
  12. 搜索百度网盘资源网站地址
  13. oracle floor
  14. Web项目中前端页面引用外部Js和Css的路径问题
  15. 生成32位,16进制的UUID
  16. Windows 解决端口占用
  17. Redis 全实践(超长文预警)
  18. Epub 阅读器 - iOS
  19. 虚拟机从光盘启动方法
  20. valine评论系统使用

热门文章

  1. 2019.12QQ音乐播放接口最新配置(亲测可用)
  2. Windows10系统安装软件后软件界面异常(变得很小或很大),界面显示不完全的解决方案
  3. python语言编写爬虫_自写Python小爬虫一个 - 『编程语言区』 - 吾爱破解 - LCG - LSG |安卓破解|病毒分析|www.52pojie.cn...
  4. 阿里云智能身份证OCR文字识别
  5. android 判断图片的格式的,android判断文件是否是图片文件的方法
  6. 计算机制工艺品的意义,wh9程序化模型编写、计算机制说明
  7. [下属谈话]管理者与下属谈话的技巧以及注意点
  8. 到底什么是5G CPE?
  9. Python数据分析pandas入门(一)------十分钟入门pandas
  10. 关于CodeBlocks下载了带mingw版本的依旧无法编译运行的解决方案