// Excel width, not character width

width = Truncate([{Number of Visible Characters} * {Maximum Digit Width} + {5 pixel padding}]/{Maximum Digit Width} * 256)/256

以Calibri字体为例,11点字体大小的最大数字宽度为7像素(96 dpi)。如果您将列宽设置为八个字符宽度,例如setColumnWidth(columnIndex,8 * 256),则可见字符(在Excel中显示的值)的实际值从下式导出: Truncate([numChars * 7 + 5]/7 * 256)/256 = 8;

使用cmToW()当设置列的宽度(字符宽度 )如sheet.setColumnWidth()

下面我设置XSSFClientAnchor来调整图片以填充细胞并保持其比。 // set padding between picture and gridlines so gridlines would not covered by the picture

private static final double paddingSize = 10;

private static final int padding = Units.toEMU(paddingSize);

public static int[] calCellAnchor(double cellX, double cellY, int imgX, int imgY) {

// assume Y has fixed padding first

return calCoordinate(true, cellX, cellY, imgX, imgY);

}

public static int[] calCoordinate(boolean fixTop, double cellX, double cellY, int imgX, int imgY) {

int x = imgX;

double ratio = ((double) imgX)/imgY;

x = (int) Math.round(Units.toEMU(cellY - 2 * paddingSize) * ratio);

x = (Units.toEMU(cellX) - x)/2;

if (x < padding) {

return calCoordinate(false, cellY, cellX, imgY, imgX);

}

return calDirection(fixTop, x);

}

public static int[] calDirection(boolean fixTop, int x) {

if (fixTop) {

return new int[] { x, padding, -x, -padding };

} else {

return new int[] { padding, x, -padding, -x };

}

}

...

// set XSSFClientAnchor here

BufferedImage img = ImageIO.read(new File(path));

int[] anchorArray = calCellAnchor(Units.pixelToPoints(cellW), Units.pixelToPoints(cellH), img.getWidth(),

img.getHeight());

XSSFClientAnchor anchor = new XSSFClientAnchor(anchorArray[0], anchorArray[1], anchorArray[2], anchorArray[3], col1, row1, col2, row2);

...

java excel poi 图片大小_Apache POI Excel工作表:在保持比例的同时调整图片大小相关推荐

  1. vb整合多个excel表格到一张_VB合并工作表下载

          VB合并工作表最新版是一款功能强大且界面简洁美观的excel表格合并工具,VB合并工作表最新版操作简便且易上手可以运行稳定,能够为大家解决合成打开卡顿等问题,实现多薄多表合并,VB合并工作 ...

  2. 在EXCEL中一个窗口显示多个工作表

    在EXCEL中一个窗口显示多个工作表 目录 在EXCEL中一个窗口显示多个工作表 1.点击视图选项卡中"全部重排" 2.弹出窗口 在"排列方式"中选点击&quo ...

  3. 在Excel表格中,任意修改原工作表数据,新工作中内容跟着改变,如何操作?

    在Excel表格中,任意修改原工作表数据,新工作中内容跟着改变,如何操作? 目录 在Excel表格中,任意修改原工作表数据,新工作中内容跟着改变,如何操作? 1.例如将原成绩表中的表格,复制到新成绩表 ...

  4. 在excel UiPath中重命名或更改工作表名称

    在excel UiPath中重命名或更改工作表名称 很多时候我们使用excel来自动化业务流程. 我们通过 excel 获取自动化的输入数据,或者我们需要将 excel 作为输出发送给业务用户. 假设 ...

  5. java重命名sheet失败_java jxl excel 数据导出 重新命名无效的工作表名称 | 学步园...

    今天在java中使用jxl导出数据到excel工作表的时候,无论是在线直接打开还是保存到本地再打开,都会提示下面的错误信息: "Excel在'excel.xls'中发现不可读取的内容.是否恢 ...

  6. 在java中excel格式变为zip什么原因_Excel工作表中最常见的8类问题,你一定遇到过,附解决方法!...

    在Excel工作表中,最常用的还是一些技巧,如果能够熟练掌握,对于工作效率的提高绝对不是一点点哦,结合工作实际,小编对工作中常见的问题进行了总结,一共有8类,你一定也遇到过-- 一.Excel工作表常 ...

  7. Excel酷炫技能,批量修改工作表名称,让你的工作事半功倍

    企事业单位部门众多,人员也众多.使用Microsoft Excel汇集资料任务繁重,收集到的Excel工作表资料名称也各不相同,如果不将其整理会对今后的工作造成不必要的麻烦.对Excel工作表名称单个 ...

  8. excel数据输入窗体控件_工作表数据输入或Excel用户窗体

    excel数据输入窗体控件 If you're building an Excel workbook, in which users with basic Excel skills will ente ...

  9. excel同一单元格怎么换行_Excel工作表中最经典的10个应用,小技巧,大作用

    生活离不开技巧,工作也是一样,如果你经常和Excel系统打交道,那么,以下技巧是必须要掌握的. 一.Excel经典技巧:单元格内强制换行. 目的:对单元格内的内容换行显示. 方法: 1.将光标定位到需 ...

最新文章

  1. vue缓存页面【二】
  2. 《OpenStack云计算实战手册(第2版)》——导读
  3. 使用宝塔面板安装Rocket.Chat多功能团队聊天室
  4. Qt学习笔记-----Model/View架构之自定义Model
  5. 2020研究生数学建模结果_关于举办2020年全国研究生数学建模大赛的通知
  6. 树莓派使用STEP8:使能串口调试
  7. 网站随机背景音乐源码
  8. IBM MQ 使用指南
  9. LintCode,hihoCoder,LeetCode有什么区别?
  10. 1006. 换个格式输出整数 (15)-PAT乙级真题
  11. 基于BlueZ 的BLE蓝牙开发
  12. linux下hex文件到bin文件的格式转化,hex转换成bin文件小工具(HEX2BIN.EXE)下载_hex转换成bin文件小工具(HEX2BIN.EXE)官方下载-太平洋下载中心...
  13. 工具分享:易读文档下载器(同时支持百度/豆丁)
  14. 数据库系统概念读书笔记-SQL标准简介
  15. idea常用22种快捷键,脱离鼠标,便捷开发,赶紧收藏
  16. 进击ReactNative-疾如风
  17. 科目二 后视镜 调节
  18. java month_Java MonthDay getMonth()用法及代码示例
  19. 使用MODBUS转PROFINET智能网关实现与多个温控器数据读写
  20. 基于cocos2d-x引擎的游戏框架设计【转载】

热门文章

  1. 黎明杀机一直无法连接在线服务器,黎明杀机无法连接-崩坏3IOS无法连接服务器...
  2. matlab十进制转二进制文件,将十进制的范围数据转化为二进制
  3. 【linked-java】369.Plus One Linked List
  4. 简单的建站流程来啦!
  5. 陈建文个人简介:特斯拉进军手机界
  6. 双智机器人 珠海_格力“双智多元化”成果显著 珠洽会展示核心科技
  7. python爬虫框架之Scrapy之分页爬取电影天堂
  8. iPad内置时钟走快 苹果不允许第三方应用校准
  9. 双冒号(::)和单冒号(:)在 C++ 中的含义和作用
  10. mysql批量设置属性_for 循环修改 model.Schema 实体的某个属性值(这个属性是一个索引,不可重复),批量插入数据库...