C#基于NPOI生成具有精确列宽行高的Excel文件的方法
作者:shichen2014 发布时间:2022-12-18 13:32:46
标签:C#,NPOI,Excel
本文实例讲述了C#基于NPOI生成具有精确列宽行高的Excel文件的方法,是非常具有实用价值的技巧分享给大家供大家参考。具体方法如下:。
一、前言
NPOI是操作Excel的神器,导出导入快如闪电,
但是SetColumnWidth函数个人感觉不会用,怎么弄都无法控制好,因为他是以字符数量去设置宽度,实际上Excel列宽还有个像素的概念,更难搞懂了。
//附带SetColumnWidth的用法和注释
IWorkbook hssfworkbook = new HSSFWorkbook();
ISheet sheet1 = hssfworkbook.CreateSheet("Sheet1");
sheet1.SetColumnWidth(1, 100 * 256);
// 摘要:
// Set the width (in units of 1/256th of a character width) The maximum column
// width for an individual cell is 255 characters. This value represents the
// number of characters that can be displayed in a cell that is formatted with
// the standard font.
//
// 参数:
// columnIndex:
// the column to set (0-based)
//
// width:
// the width in units of 1/256th of a character width
注释为英文,不过比较容易理解。
二、遇到的问题
那么如果你需要生成固定格式的Excel,要有精确的列宽和行高,要用于打印等特殊需求,又如何解决呢
三、解决方案
建立一个已经设置好行高列宽的xls作为模板,在需要填充字符的地方随便填充一点字符(避免NPOI任务该单元格是NULL),设置好字体等内容,利用NPOI打开这个xls文件,对对应的空格进行SetValue,然后保存文件,由于NPOI是对于文件流的操作而不是用Excel.exe去操作Excel,所以生成文件的效率极高,两秒钟不到可以生成一百个内容不一单元格样式一模一样的Excel文件,NPOI不愧为操作xls的神器,这样子可以省去大量的功夫,连字体大小字符居中还是靠右对齐、颜色都可以在模板设置好而无需通过NPOI设置,毕竟写代码设置单元格样式感觉是挺麻烦的事情
四、结束语
此解决方案只适合需要输出少量字符的情况,对于输出字符数量不确定的情况,因为可能会填满单元格导致列宽或者行高产生变化,从而影响了打印预览等,对于这种情况由于没测试所以不进行描述。
相信本文所述对大家C#程序设计的学习有一定的借鉴价值。
0
投稿
猜你喜欢
- 一、前言介绍:1.1 课题背景 互联网发展至今,无论是其理论还是技术都已经成熟,而且
- 介绍Java桥梁模式(也称桥接模式)(Bridge Pattern)是一种设计模式,它将抽象和实现分离,使它们可以独立地变化.它通过一个大类
- 为了实现不同环境构建的不同需求,这里使用到了 profile。因为 profile 能够在构建时修改 pom 的一个子集,或者添加额外的配置
- 实践过程效果代码public partial class Form1 : Form{ public Form1()
- JavaWeb项目部署到服务器详细步骤本地准备在eclipse中将项目打成war文件:鼠标右键要部署到服务器上的项目导出项目数据库文件MyS
- 背景在 Java 中实现线程安全的传统方式是 synchronized 关键字,虽然它提供了一定的同步能力,但它在使用上
- 1. 前言Compose 具有超强的兼容性,兼容现有的所有代码,Compose 能够与现有 View 体系并存,可实现渐进式替换。这就很有意
- 本文实例为大家分享了Unity3D撤回命令功能开发,供大家参考,具体内容如下在类似操作考核的项目中我们经常会遇到回到上一步的需求。所以我们有
- 关于ListView拖拽移动位置,想必大家并不陌生,比较不错的软件都用到如此功能了.如:搜狐,网易,百度等,但是相比来说还是百度的用户体验较
- 项目需要用到验证用户手机号码输入是否合法,在网上找了好几处代码,经过测试都是不通过的!最后发现了一段代码可以验证通过。代码好像在一个很多广告
- 在application.properties中填写中文信息,在读取该文件时会出现中文乱码问题。比如:application.propert
- springboot 配置服务代理有时候,我们可能有下边这样的需求:即,针对于分布式服务,我们会有多种业务接口服务,但是服务器上可能只要求开
- 通过之前三篇关于Spring Boot异步任务实现的博文,我们分别学会了用@Async创建异步任务、为异步任务配置线程池、使用多个线程池隔离
- 图1如图1,我们工作过程中,无论平台网站还是企业官网,总少不了新闻展示。如某天产品经理跟我们说,推广人员想要抓取百度新闻中热点要闻版块提高站
- 本文为大家分享了Android仿小度语音助手的贝塞尔曲线动画,供大家参考,具体内容如下废话不多说,看下面的动图,和百度的还是有点点差别,我也
- 本文实例讲述了java读取properties文件的方法。分享给大家供大家参考。具体实现方法如下:package com.test.demo
- @RequestBody部分属性丢失问题描述JavaBean实现public class VerifyNewFriendApplyReq i
- 1、前言最近在用Kotlin+Spring Boot写一个后端项目,实体类习惯性地用了Kotlin中的data class,但是Spring
- 本文实例为大家分享了C#生成唯一订单号的具体代码,供大家参考,具体内容如下根据GUID+DateTime.Now.Ticks生产唯一订单号/
- 报错信息一:jQuery.handleError is not a function 上传图片的时候,通过F12,查看到这个错误。