java excel设置row 里面的宽度自适应

2023-05-16


row = sheet.createRow(i+1);
            HSSFCellStyle cellStyle = wb.createCellStyle();
            cellStyle.setWrapText(true);
            row.setRowStyle(cellStyle);


制定某一列的宽度:需要是256的倍数

默认的宽度,不需要,很奇怪

// 第一步,创建一个webbook,对应一个Excel文件
        if(wb == null){
            wb = new HSSFWorkbook();
        }
        // 第二步,在webbook中添加一个sheet,对应Excel文件中的sheet
        HSSFSheet sheet = wb.createSheet(sheetName);

        sheet.setDefaultColumnWidth(20);
        sheet.setColumnWidth(0,5120);
        sheet.setColumnWidth(1,5120);
        sheet.setColumnWidth(2,25600);
        sheet.setColumnWidth(3,10240);
        sheet.setColumnWidth(4,2560);
        sheet.setColumnWidth(5,2560);
        sheet.setColumnWidth(6,2560);
        sheet.setColumnWidth(7,2560);


        // 第三步,在sheet中添加表头第0行,注意老版本poi对Excel的行数列数有限制short
        HSSFRow row = sheet.createRow(0);

        // 第四步,创建单元格,并设置值表头 设置表头居中
        HSSFCellStyle style = wb.createCellStyle();
        style.setAlignment(HSSFCellStyle.ALIGN_CENTER); // 创建一个居中格式

        //设置超链接的字体和颜色
        hlink_style = wb.createCellStyle();
        HSSFFont hlink_font = wb.createFont();
        hlink_font.setUnderline(HSSFFont.U_SINGLE);
        hlink_font.setColor(HSSFColor.BLUE.index);
        hlink_style.setFont(hlink_font);

        //设置大的标题的字体
        bigFontstyle = wb.createCellStyle();
        HSSFFont big_font = wb.createFont();
        big_font.setFontHeight((short)256);
        bigFontstyle.setFont(big_font);


        //设置大的红色标题的字体
        bigRedFontStyle = wb.createCellStyle();
        HSSFFont big_red_font = wb.createFont();
        big_red_font.setFontHeight((short)256);
        big_red_font.setColor(HSSFColor.RED.index);
        bigRedFontStyle.setFont(big_red_font);


        //绿色的working标记的字体
        greenFontStyle = wb.createCellStyle();
        HSSFFont green_font = wb.createFont();
        green_font.setColor(HSSFColor.GREEN.index);
        greenFontStyle.setFont(green_font);

        //红色的working标记的字体
        redFontStyle = wb.createCellStyle();
        HSSFFont red_font = wb.createFont();
        red_font.setColor(HSSFColor.RED.index);
        redFontStyle.setFont(red_font);


        HSSFCell cell = null;
        //创建标题
        for(int i=0;i<title.length;i++){
            cell = row.createCell(i);
            cell.setCellValue(title[i]);
            cell.setCellStyle(style);
        }





参考:

http://www.educity.cn/wenda/371805.html 

HSSFCell 设立样式

提问者: xuxinliang      发布时间:2014-05-10      浏览:293      回复:0      悬赏:0.0希赛币
HSSFCell 设置样式
1、遍历workbook 
// load源文件   
POIFSFileSystem fs = new POIFSFileSystem(new FileInputStream(filePath));   
HSSFWorkbook wb = new HSSFWorkbook(fs);   
for (int i = 0; i < wb.getNumberOfSheets(); i++) {   
  HSSFSheet sheet = wb.getSheetAt(i);   
  for (int j = sheet.getFirstRowNum(); j < sheet.getLastRowNum(); j++) {   
    HSSFRow row = sheet.getRow(j);   
    if (row != null) {   
      // 。。。操作}   
    }   
  }   
}   
// 目标文件   
FileOutputStream fos = new FileOutputStream(objectPath);   
// 写文件   
wb.write(fos);   
fos.close();  


2、得到列和单元格 
HSSFRow row = sheet.getRow(i);      
HSSFCell cell = row.getCell((short) j);    


3、设置sheet名称和单元格内容为中文 
wb.setSheetName(n, "中文",HSSFCell.ENCODING_UTF_16);          
cell.setEncoding((short) 1);      
cell.setCellValue("中文");    


4、单元格内容未公式或数值,可以这样读写 
cell.setCellType(HSSFCell.CELL_TYPE_NUMERIC);      
cell.getNumericCellValue();  



5、设置列宽、行高 
sheet.setColumnWidth((short)column,(short)width);      
row.setHeight((short)height);  



6、添加区域,合并单元格 
Region region = new Region((short)rowFrom,(short)columnFrom,(short)rowTo,(short)columnTo);      
sheet.addMergedRegion(region);      
//得到所有区域      
sheet.getNumMergedRegions() ;  


7、常用方法 
根据单元格不同属性返回字符串数值 
public String getCellStringValue(HSSFCell cell) {   
  String cellValue = "";   
  switch (cell.getCellType()) {   
  case HSSFCell.CELL_TYPE_STRING:   
    cellValue = cell.getStringCellValue();   
    if (cellValue.trim().equals("") || cellValue.trim().length() <= 0)   
      cellValue = " ";   
    break;   
  case HSSFCell.CELL_TYPE_NUMERIC:   
    cellValue = String.valueOf(cell.getNumericCellValue());   
    break;   
  case HSSFCell.CELL_TYPE_FORMULA:   
    cell.setCellType(HSSFCell.CELL_TYPE_NUMERIC);   
    cellValue = String.valueOf(cell.getNumericCellValue());   
    break;   
  case HSSFCell.CELL_TYPE_BLANK:   
    cellValue = " ";   
    break;   
  case HSSFCell.CELL_TYPE_BOOLEAN:   
    break;   
  case HSSFCell.CELL_TYPE_ERROR:   
    break;   
  default:   
    break;   
  }   
  return cellValue;   
}  

8、常用单元格边框格式 

虚线HSSFCellStyle.BORDER_DOTTED 
实线HSSFCellStyle.BORDER_THIN 
public static HSSFCellStyle getCellStyle(short type) {   
  HSSFWorkbook wb = new HSSFWorkbook();   
  HSSFCellStyle style = wb.createCellStyle();   
  style.setBorderBottom(type);// 下边框   
  style.setBorderLeft(type);// 左边框   
  style.setBorderRight(type);// 右边框   
  style.setBorderTop(type);// 上边框   
  return style;   
}  


9、设置字体和内容位置 
HSSFFont f  = wb.createFont();      
f.setFontHeightInPoints((short) 11);// 字号   
f.setBoldweight(HSSFFont.BOLDWEIGHT_NORMAL);// 加粗   
style.setFont(f);      
style.setAlignment(HSSFCellStyle.ALIGN_CENTER);// 左右居中   
style.setVerticalAlignment(HSSFCellStyle.VERTICAL_CENTER);// 上下居中   
style.setRotation(short rotation);// 单元格内容的旋转的角度   
HSSFDataFormat df = wb.createDataFormat();      
style1.setDataFormat(df.getFormat("0.00%"));// 设置单元格数据格式   
cell.setCellFormula(string);// 给单元格设公式   
style.setRotation(short rotation);// 单元格内容的旋转的角度   
cell.setCellStyle(style);    

10、插入图片 
// 先把读进来的图片放到一个ByteArrayOutputStream中,以便产生ByteArray   
ByteArrayOutputStream byteArrayOut = new ByteArrayOutputStream();   
BufferedImage bufferImg = ImageIO.read(new File("ok.jpg"));   
ImageIO.write(bufferImg, "jpg", byteArrayOut);   
// 读进一个excel模版   
FileInputStream fos = new FileInputStream(filePathName + "/stencil.xlt");   
fs = new POIFSFileSystem(fos);   
// 创建一个工作薄   
HSSFWorkbook wb = new HSSFWorkbook(fs);   
HSSFSheet sheet = wb.getSheetAt(0);   
HSSFPatriarch patriarch = sheet.createDrawingPatriarch();   
HSSFClientAnchor anchor = new HSSFClientAnchor(0, 0, 1023, 255, (short) 0, 0, (short) 10, 10);   
patriarch.createPicture(anchor, wb.addPicture(byteArrayOut.toByteArray(), HSSFWorkbook.PICTURE_TYPE_JPEG)); 



本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

java excel设置row 里面的宽度自适应 的相关文章

  • Spring应用中Eureka健康检查的问题

    我正在开发一个基于 Spring 的应用程序 其中包含多个微服务 我的一个微服务充当尤里卡服务器 到目前为止一切正常 在我所有其他微服务中 用 EnableEurekaClient 我想启用这样的健康检查 应用程序 yml eureka c
  • 使用 LinkedList 实现下一个和上一个按钮

    这可能是一个愚蠢的问题 但我很难思考清楚 我编写了一个使用 LinkedList 来移动加载的 MIDI 乐器的方法 我想制作一个下一个和一个上一个按钮 以便每次单击该按钮时都会遍历 LinkedList 如果我硬编码itr next or
  • 为 java 游戏创建交互式 GUI

    大家好 我正在创建一个类似于 java 中的 farmville 的游戏 我只是想知道如何实现用户通常单击以与游戏客户端交互的交互式对象 按钮 我不想使用 swing 库 通用 Windows 看起来像对象 我想为我的按钮导入自定义图像 并
  • Excel VSTO 工作簿新活动

    在 Excel 2007 的一个 Excel 插件项目中 我需要检查创建新工作簿的事件 我还需要捕捉 Workbook Open 事件 我很容易做到这一点 在我在互联网上的研究中 我发现了以下内容 打开任何工作簿时都会引发 Applicat
  • java.lang.IllegalStateException:提交响应后无法调用 sendRedirect()

    这两天我一直在尝试找出问题所在 我在这里读到我应该在代码中添加一个返回 我做到了 但我仍然得到 java lang IllegalStateException Cannot call sendRedirect after the respo
  • jdbc mysql loginTimeout 不起作用

    有人可以解释一下为什么下面的程序在 3 秒后超时 因为我将其设置为在 3 秒后超时 12秒 我特意关闭了mysql服务器来测试mysql服务器无法访问的这种场景 import java sql Connection import java
  • 当 OnFocusChangeListener 应用于包装的 EditText 时,TextInputLayout 没有动画

    不能比标题说得更清楚了 我有一个由文本输入布局包裹的 EditText 我试图在 EditText 失去焦点时触发一个事件 但是 一旦应用了事件侦听器 TextInputLayout 就不再对文本进行动画处理 它只是位于 editText
  • Java ResultSet 如何检查是否有结果

    结果集 http java sun com j2se 1 4 2 docs api java sql ResultSet html没有 hasNext 方法 我想检查 resultSet 是否有任何值 这是正确的方法吗 if resultS
  • 如何访问JAR文件中的Maven资源? [复制]

    这个问题在这里已经有答案了 我有一个使用 Maven 构建的 Java 应用程序 我有一个资源文件夹com pkg resources 我需要从中访问文件 例如directory txt 我一直在查看各种教程和其他答案 但似乎没有一个对我有
  • logcat 中 mSecurityInputMethodService 为 null

    我写了一点android应显示智能手机当前位置 最后已知位置 的应用程序 尽管我复制了示例代码 并尝试了其他几种解决方案 但似乎每次都有相同的错误 我的应用程序由一个按钮组成 按下按钮应该log经度和纬度 但仅对数 mSecurityInp
  • 获取文件的总大小(以字节为单位)[重复]

    这个问题在这里已经有答案了 可能的重复 java 高效获取文件大小 https stackoverflow com questions 116574 java get file size efficiently 我有一个名为 filenam
  • Eclipse 选项卡宽度不变

    我浏览了一些与此相关的帖子 但它们似乎并不能帮助我解决我的问题 我有一个项目 其中 java 文件以 2 个空格的宽度缩进 我想将所有内容更改为 4 空格宽度 我尝试了 正确的缩进 选项 但当我将几行修改为 4 空格缩进时 它只是将所有内容
  • 行编号选择自动填充直到最后[关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 我有一个包含数千行的表 我想通过在第一行旁边添加 1 2 3 来对行进行编号 然后选择这些行并拖动到最后以使用递增的数字进行填充 如何自动
  • 如何使用 jUnit 将测试用例添加到套件中?

    我有 2 个测试类 都扩展了TestCase 每个类都包含一堆针对我的程序运行的单独测试 如何将这两个类 以及它们拥有的所有测试 作为同一套件的一部分执行 我正在使用 jUnit 4 8 在 jUnit4 中你有这样的东西 RunWith
  • 专门针对 JSP 的测试驱动开发

    在理解 TDD 到底是什么之前 我就已经开始编写测试驱动的代码了 在没有实现的情况下调用函数和类可以帮助我以更快 更有效的方式理解和构建我的应用程序 所以我非常习惯编写代码 gt 编译它 gt 看到它失败 gt 通过构建其实现来修复它的过程
  • VBA将二进制图像转换为网页的base64编码字符串

    我正在尝试读取 JPG 文件并将该文件转换为 base64 编码的字符串 该字符串可用作网页上的嵌入 jpeg 我在网上发现了两个在 VBA 中进行 Base64 编码 解码的函数 它们似乎被广泛接受 编码 解码过程产生了我的原始二进制字符
  • 干净构建 Java 命令行

    我正在使用命令行编译使用 eclipse 编写的项目 如下所示 javac file java 然后运行 java file args here 我将如何运行干净的构建或编译 每当我重新编译时 除非删除所有内容 否则更改不会受到影响 cla
  • 溢出范围:将数组转换为与 @ 的交集值

    在 Excel 引入溢出范围之前 在 运算符 可以使用 将范围 转换 为单个值0 数值 或 字符串 但 并不完全相同 假设有一列正整数从B4向南 从D2向东有一行正整数 并且 A 列和 C 列以及第 1 行和第 3 行完全是空的 目的是将单
  • 如何防止在Spring Boot单元测试中执行import.sql

    我的类路径中有一个 import sql 文件 其中包含一些 INSERT 语句 当使用 profile devel 运行我的应用程序时 它的数据被加载到 postgres 数据库中 到目前为止一切正常 当使用测试配置文件执行测试时 imp
  • Spring Boot 无法更新 azure cosmos db(MongoDb) 上的分片集合

    我的数据库中存在一个集合 documentDev 其分片键为 dNumber 样本文件 id 12831221wadaee23 dNumber 115 processed false 如果我尝试使用以下命令通过任何查询工具更新此文档 db

随机推荐

  • 2.1.4 VLSM和CIDR技术

    IP地址表示了IP网络中的一个通信实体 xff0c 一台主机可以有多个IP地址 IP分组中的IP源 目的地址在网络传输过程中保持不变 xff0c 因而总是由确定的源通信实体送往指定的目的通信实体 一个IP地址必须指名两点 xff1a 属于哪
  • VOR/DME进近与ILS进近的不同之处(摘录转载feeyo.com)

    问 xff1a 最近连续几次上班都遇到飞机作VOR DME 进近 xff0c 发现相对ILS xff0c 飞机入口高度都有点偏高 xff0c 速度也大 xff0c 很多跑道头脱离的 所以 xff0c 我想请教下各位FF xff0c 能都给小
  • Vista下AD1980/AD198X声卡驱动

    一直以来 xff0c AD198X声卡并无官方驱动 由于此型号芯片太老 xff0c 大多数OEM厂也停止对它的支持 如果使用XP下的驱动来强行代替 xff0c 会出现爆音以及设备间歇性失效的问题 使用RT的AC97 codec来代替 xff
  • python opencv cython

    在python中import cython编译的 so文件时报错 ImportError salmetric so undefined symbol ZN2cv12 OutputArrayC1ERNS 3MatE 解决方法见4 1 ldd
  • 关于 Windows照片查看器/图片查看器 颜色不准、存在色差的问题的解决方法

    多次遇到过这个现象 xff0c 就是用windows照片查看器 图片查看器 xff0c 显示的照片颜色不准 xff0c 跟用Photoshop校正过的显示或者IE浏览器中的显示 xff0c 存在明显的色差 这个情况出现的具体原因目前尚未能知
  • “此工作站和主域间的信任关系失败”之解决

    某虚拟化的域控制器出现严重故障以至于不可修复 xff0c 故使用之前Hyper V中导出的备份恢复了域控制器 恢复后基本功能正常 xff0c 但部分工作站登录时提示 此工作站和主域间的信任关系失败 解决方案 0 必须确保故障工作站没有其他的
  • go语言操作数据库

    由于项目需要 xff0c 研究了一下golang操作数据库的基本方式 操作环境在macos上 1 首先连接数据库 mysql u root p 2 选择数据库 use test 3 创建一个我们需要测试的user表 CREATE TABLE
  • Python从Excel表格中读取日期格式遇到的问题及对策

    在从Excel表中读取基金交易明细过程中 xff0c 交易日期的读取一直卡壳 Excel表中的日期是格式良好的2019 10 11 xff0c 但是读取到了Python中就成了43749 0 这一个数字怎么转换成正确的日期格式呢 xff1f
  • 升级笔记本硬件并安装Debian的过程

    前面说过了手头有个Win10笔记本 xff0c 华硕顽石FL8000U型号 xff0c 4G DDR4 2400MHz 威刚内存 xff0c 1T机械硬盘 xff0c 比较鸡肋 xff0c 开机速度比较慢 xff0c Win10登录界面还会
  • 转载:解决wps linux中字体缺失以及文字体名字全是英文的问题

    第一部分 xff1a 字体缺失问题 可能是版权原因 xff0c Linux中许多字体是没有的 xff0c 可以从Windows系统的Windows Fonts文件夹中 xff0c 复制所需的ttf字体文件到Linux系统的 usr shar
  • 无线键鼠接收器配对怎么就那么难?简直就是浪费

    手头无线键鼠套装 无线鼠标等设备比较多 xff0c 基本每台笔记本都有一套 品牌主要以雷柏和罗技为主 xff0c 罗技主要是鼠标 xff0c 此文不涉及 有一套雷柏的无线键鼠套装 xff0c 因为使用多年 xff0c 鼠标失灵已经扔了 xf
  • 亲测有效的下载微信公众号推文视频的一种方法。

    微信公众号推送的内容也有比较精华的 xff0c 特别是一些演讲视频 与其收藏积灰 xff0c 还不如下载保存 以此篇公众号推文为例 xff1a https mp weixin qq com s qkXLmTqBSAox3gx1yJWsNQ
  • Debian8 jessie 的官方源(备份)

    在非常旧的笔记本上安装了Debian8 然后为了安装速度 xff0c 取消了网络镜像源 又因为中文乱码问题 xff0c 没法更新语言包 加了阿里云 清华 网易等等的jessie软件源后 xff0c 都提示有问题 xff0c 怀疑是不是不支持
  • 更改LXDE的语言为中文

    之前给旧笔记本安装了Debian8 43 LXDE嘛 xff0c 运行比较流畅 安装过程中本想选择中文的 xff0c 但是安装界面中旧有中文乱码 xff0c 所以还是选了英语 等装好了系统 xff0c 把apt update 43 upgr
  • nn.ModuleList和nn.Sequential的理解

    nn ModuleList和nn Sequential的出现是为了使代码简洁 nn ModuleList使对于加入其中的子模块 xff0c 不必在forward中依次调用 nn Sequentialt使对于加入其中的子模块在forward中
  • 红米K40 Pro+5G手机出现电量显示故障的修复

    前两天的某天早晨 xff0c 插了一夜充电器的红米手机电量竟然依然是27 xff0c 比昨晚充电时更少了 摸摸手机也凉凉的 xff0c 看来充电器并未工作 然后就心慌慌的带着手机开了省点模式去上班 xff0c 一路上正常 到了单位后 xff
  • Debian安装myBase8.2 Beta-10的各种踩坑

    先去官网下载Linux的压缩包 xff0c 官网下载页面 for Linux amd64 Ver 8 2 Beta 10 tar xz32MB 然后放到home目录下 xff0c 解压 tar xJf myBase tar xz 得到一个M
  • ArchLinux的安装

    安装虚拟机的时候报了一个错误 xff1a this kernel requires an x86 64 cpu but 该原因 xff1a 操作系统是32位 xff0c 虚拟机的系统镜像是64位的虚拟机配置问题电脑没有开启虚拟化 我在安装的
  • iOS 第13课 使用XIB可视化编辑界面

    xcode XIB 基础 0 和android 里面的preview 一样 xff0c 可以看到同时操作添加和修改视图的位置 1 有一点和 android 比较像的是设置主视图 xff0c 我们可以在我们的项目点击 xff0c 然后是 Ma
  • java excel设置row 里面的宽度自适应

    row 61 sheet createRow i 43 1 HSSFCellStyle cellStyle 61 wb createCellStyle cellStyle setWrapText true row setRowStyle c