NPOI合并单元格后数据显示不全怎么解决的 各位大哥好,小弟刚才遇到了个问题,NPOI合并单元格,数据显示不全,数据已自动换行,网上搜了很多高度自适应都解决不了,求问各位大大是怎么调整行高 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 static void Main(string[] args) { //说明:设置列宽、行高与合并单元格 //1.创建EXCEL中的Workbook IWorkbook myworkbook = new XSSFWorkbook(); //2.创建Workbook中的Sheet ISheet mysheet = myworkbook.CreateSheet("sheet1"); //4.合并单元格区域 例: 第1行到第1行 第2列到第3列围成的矩形区域 mysheet.AddMergedRegion(new CellRangeAddress(0, 0, 1, 2)); //5.创建Row中的Cell并赋值 IRow row0 = mysheet.CreateRow(0); row0.CreateCell(0).SetCellValue("0-0"); row0.CreateCell(1).SetCellValue("0-1"); row0.CreateCell(3).SetCellValue("0-3"); //6.设置列宽 SetColumnWidth(列的索引号从0开始, N * 256) 第二个参数的单位是1/256个字符宽度。例:将第四列宽度设置为了30个字符。 mysheet.SetColumnWidth(3, 30 * 256); //7.设置行高 Height的单位是1/20个点。例:设置高度为50个点 row0.Height=50*20; //5.保存 FileStream file= new FileStream(@"E:\myworkbook2.xlsx", FileMode.Create); myworkbook.Write(file); file.Close(); } 请问怎么操作,能贴个代码我看看吗,谢谢合并之前先把要合并的内容都放在第一个单元格。http://bbs.csdn.net/topics/392225270 这是我当初的帖子 请问怎么操作,能贴个代码我看看吗,谢谢我是操作datatable合并,当时没人回。然后我自己写的循环把内容一样的合并到第一个单元格。后来又发现excel2016合并没效果,到现在问题还没解决 请问怎么操作,能贴个代码我看看吗,谢谢我是操作datatable合并,当时没人回。然后我自己写的循环把内容一样的合并到第一个单元格。后来又发现excel2016合并没效果,到现在问题还没解决我明白你的意思了,我数据显示不全不是说数据获取不到,而是execl合并后行高不够高,内容被遮住了,以前用VBA的时候解决的方法放在NPOI用不了,我非常无奈 合并有没有用excel2016打开过,合并还有效果吗http://blog.csdn.net/echoshinian100/article/details/38540321 自动获取行高 合并有没有用excel2016打开过,合并还有效果吗http://blog.csdn.net/echoshinian100/article/details/38540321 自动获取行高你这个方法我看过,但是因为我字体挺大的,而且数据是各种数字英文字符串混合,根本不能获取一个准确的长度,所以高度很不准,以前用VBA也遇到过这种问题,但是找到了解决的方法,将VBA的方法用到NPOI上就不行了,很麻烦,我的execl是WPS,合并有效果,没有2016不知道效果怎么样,你下载个WPS看看合并有没有效果,有效果那就没办法了 我是excel2010,有效果,但是user测试时发现不行,他的事excel2016。我们肯定要从user角度出发,不能说要他配合我们来装软件 合并单元格后再自适应高度,别说NPOI不行,连Excel也显示不全,这并不是NPOI的问题了。我以前在Aspose.Cells中碰到过类似的问题,后来的解决方案如下:1. 将合并单元格后的文本内容复制到一个没有合并单元格的列中,并设置宽度与被合并的单元格宽度一样2. 设置行自适应高度3. 删除那个复制列并输出Excel这样就可以了 来看看excel 自身的功能:我打开 Excel,通过它自动录制宏,得到这样的代码Sub 宏1()'' 宏1 宏'' Range("D8").Select With Selection .HorizontalAlignment = xlGeneral .VerticalAlignment = xlBottom .WrapText = False .Orientation = 0 .AddIndent = False .IndentLevel = 0 .ShrinkToFit = True .ReadingOrder = xlContext .MergeCells = False End WithEnd Sub我让单元格在内容增加时自动缩小字体。估计 Excel 也有类似的“自动增高行高”的功能。 话要说回来了,默认地当不同单元分别显示数据时总有一些单元格里边的边框“空隙”。而你“合并单元格”(并且内容合并到前边的单元格里)之后怎么就会让内容显示不全了呢?这起码对于 Excel 来说有些奇怪。对于第三方工具可能出这个 bug,但是 excel 本身应该很少出现。 我是excel2010,有效果,但是user测试时发现不行,他的事excel2016。我们肯定要从user角度出发,不能说要他配合我们来装软件我说这个可能是NPOI的问题,我也没办法了。帮不了你 我按照你的思路弄出来了效果,但是不能删除,我删除是用这个方法RemoveCell,删除后它又会显示不全了 噢,我以前VBA测试过这个问题,因为是这是外国写的,不兼容中文,要是全英文就不会出现显示不全的这个问题,不知道算不算BUG 嗯?合并单元格之后并不需要删除啊?你只要把内容合并到第一个单元格就行了,后边的单元格已经自动就不显示了,不需要删除啊?!也许第三方软件对于“合并单元格”有特殊规定。但是Excel 在合并单元格之后,是不需要删除什么单元格的。 噢,我回答的是上面的问题,按照他的思路,我删除的是复制到一个没有合并单元格的列中,其实这个npoi的机制是这样的,你只要是在一个单元格内自动换行,他的行高会自动适应,但是合并后就不会自动适应,所以我按照他给的思路,在同行的一个没合并的单元格改为和合并的单元格一个宽度,然后自动换行,高度会自动适应,但是他机制很奇怪,删除了那个单元格,这个高度自适应又会还原,很头疼 噢,我回答的是上面的问题,按照他的思路,我删除的是复制到一个没有合并单元格的列中,其实这个npoi的机制是这样的,你只要是在一个单元格内自动换行,他的行高会自动适应,但是合并后就不会自动适应,所以我按照他给的思路,在同行的一个没合并的单元格改为和合并的单元格一个宽度,然后自动换行,高度会自动适应,但是他机制很奇怪,删除了那个单元格,这个高度自适应又会还原,很头疼1. 我当时的操作是放在最后,新增一列,回头直接删列就行2. 在删除以后,不能有任何自适应行高的代码 噢,我回答的是上面的问题,按照他的思路,我删除的是复制到一个没有合并单元格的列中,其实这个npoi的机制是这样的,你只要是在一个单元格内自动换行,他的行高会自动适应,但是合并后就不会自动适应,所以我按照他给的思路,在同行的一个没合并的单元格改为和合并的单元格一个宽度,然后自动换行,高度会自动适应,但是他机制很奇怪,删除了那个单元格,这个高度自适应又会还原,很头疼1. 我当时的操作是放在最后,新增一列,回头直接删列就行2. 在删除以后,不能有任何自适应行高的代码我刚才测试了下,我放到最后才删除,还是会还原,心累 噢,我回答的是上面的问题,按照他的思路,我删除的是复制到一个没有合并单元格的列中,其实这个npoi的机制是这样的,你只要是在一个单元格内自动换行,他的行高会自动适应,但是合并后就不会自动适应,所以我按照他给的思路,在同行的一个没合并的单元格改为和合并的单元格一个宽度,然后自动换行,高度会自动适应,但是他机制很奇怪,删除了那个单元格,这个高度自适应又会还原,很头疼1. 我当时的操作是放在最后,新增一列,回头直接删列就行2. 在删除以后,不能有任何自适应行高的代码我刚才测试了下,我放到最后才删除,还是会还原,心累奇怪,可能是NPOI有什么设定的规则。我之前使用的是Aspose.Cells,回头用NPOI试试 噢,我回答的是上面的问题,按照他的思路,我删除的是复制到一个没有合并单元格的列中,其实这个npoi的机制是这样的,你只要是在一个单元格内自动换行,他的行高会自动适应,但是合并后就不会自动适应,所以我按照他给的思路,在同行的一个没合并的单元格改为和合并的单元格一个宽度,然后自动换行,高度会自动适应,但是他机制很奇怪,删除了那个单元格,这个高度自适应又会还原,很头疼1. 我当时的操作是放在最后,新增一列,回头直接删列就行2. 在删除以后,不能有任何自适应行高的代码我刚才测试了下,我放到最后才删除,还是会还原,心累奇怪,可能是NPOI有什么设定的规则。我之前使用的是Aspose.Cells,回头用NPOI试试是的,很奇怪,我之前用VBA也没有这种奇怪的设定 Telerik的RadEditor控件导出到Pdf文件中文乱码 B/S结构:有关上传CAD图纸文件到服务器,如何让用户在程序里可以打开浏览CAD图纸??? 请高手指点图片的播放,谢谢 多地市站点建立的问题 终于碰到一个不菜的问题(<%#Container.DataItem%>),可是没有分了:( 请问datagrid的超链接列如何绑定两个字段,还有如何去掉其下划线? 如何计算两个日期当中间隔的双休日天数? 关于DropDownList控件实现 用户控件调用用户控件出问题了 问题 帮我看看 asp.net 上传空间访问失败 asp.net网站编译发布后首页报错
static void Main(string[] args)
{
//说明:设置列宽、行高与合并单元格
//1.创建EXCEL中的Workbook
IWorkbook myworkbook = new XSSFWorkbook();
//2.创建Workbook中的Sheet
ISheet mysheet = myworkbook.CreateSheet("sheet1");
//4.合并单元格区域 例: 第1行到第1行 第2列到第3列围成的矩形区域
mysheet.AddMergedRegion(new CellRangeAddress(0, 0, 1, 2));
//5.创建Row中的Cell并赋值
IRow row0 = mysheet.CreateRow(0);
row0.CreateCell(0).SetCellValue("0-0");
row0.CreateCell(1).SetCellValue("0-1");
row0.CreateCell(3).SetCellValue("0-3");
//6.设置列宽 SetColumnWidth(列的索引号从0开始, N * 256) 第二个参数的单位是1/256个字符宽度。例:将第四列宽度设置为了30个字符。
mysheet.SetColumnWidth(3, 30 * 256);
//7.设置行高 Height的单位是1/20个点。例:设置高度为50个点
row0.Height=50*20;
//5.保存
FileStream file= new FileStream(@"E:\myworkbook2.xlsx", FileMode.Create);
myworkbook.Write(file);
file.Close();
}
请问怎么操作,能贴个代码我看看吗,谢谢
合并之前先把要合并的内容都放在第一个单元格。
http://bbs.csdn.net/topics/392225270 这是我当初的帖子
请问怎么操作,能贴个代码我看看吗,谢谢
我是操作datatable合并,当时没人回。然后我自己写的循环把内容一样的合并到第一个单元格。后来又发现excel2016合并没效果,到现在问题还没解决
请问怎么操作,能贴个代码我看看吗,谢谢
我是操作datatable合并,当时没人回。然后我自己写的循环把内容一样的合并到第一个单元格。后来又发现excel2016合并没效果,到现在问题还没解决我明白你的意思了,我数据显示不全不是说数据获取不到,而是execl合并后行高不够高,内容被遮住了,以前用VBA的时候解决的方法放在NPOI用不了,我非常无奈
http://blog.csdn.net/echoshinian100/article/details/38540321 自动获取行高
http://blog.csdn.net/echoshinian100/article/details/38540321 自动获取行高你这个方法我看过,但是因为我字体挺大的,而且数据是各种数字英文字符串混合,根本不能获取一个准确的长度,所以高度很不准,以前用VBA也遇到过这种问题,但是找到了解决的方法,将VBA的方法用到NPOI上就不行了,很麻烦,我的execl是WPS,合并有效果,没有2016不知道效果怎么样,你下载个WPS看看合并有没有效果,有效果那就没办法了
2. 设置行自适应高度
3. 删除那个复制列并输出Excel这样就可以了
我打开 Excel,通过它自动录制宏,得到这样的代码Sub 宏1()
'
' 宏1 宏
''
Range("D8").Select
With Selection
.HorizontalAlignment = xlGeneral
.VerticalAlignment = xlBottom
.WrapText = False
.Orientation = 0
.AddIndent = False
.IndentLevel = 0
.ShrinkToFit = True
.ReadingOrder = xlContext
.MergeCells = False
End With
End Sub
我让单元格在内容增加时自动缩小字体。估计 Excel 也有类似的“自动增高行高”的功能。
我按照你的思路弄出来了效果,但是不能删除,我删除是用这个方法RemoveCell,删除后它又会显示不全了
噢,我以前VBA测试过这个问题,因为是这是外国写的,不兼容中文,要是全英文就不会出现显示不全的这个问题,不知道算不算BUG
嗯?合并单元格之后并不需要删除啊?你只要把内容合并到第一个单元格就行了,后边的单元格已经自动就不显示了,不需要删除啊?!也许第三方软件对于“合并单元格”有特殊规定。但是Excel 在合并单元格之后,是不需要删除什么单元格的。
噢,我回答的是上面的问题,按照他的思路,我删除的是复制到一个没有合并单元格的列中,
其实这个npoi的机制是这样的,你只要是在一个单元格内自动换行,他的行高会自动适应,但是合并后就不会自动适应,所以我按照他给的思路,在同行的一个没合并的单元格改为和合并的单元格一个宽度,然后自动换行,高度会自动适应,但是他机制很奇怪,删除了那个单元格,这个高度自适应又会还原,很头疼
噢,我回答的是上面的问题,按照他的思路,我删除的是复制到一个没有合并单元格的列中,
其实这个npoi的机制是这样的,你只要是在一个单元格内自动换行,他的行高会自动适应,但是合并后就不会自动适应,所以我按照他给的思路,在同行的一个没合并的单元格改为和合并的单元格一个宽度,然后自动换行,高度会自动适应,但是他机制很奇怪,删除了那个单元格,这个高度自适应又会还原,很头疼1. 我当时的操作是放在最后,新增一列,回头直接删列就行
2. 在删除以后,不能有任何自适应行高的代码
噢,我回答的是上面的问题,按照他的思路,我删除的是复制到一个没有合并单元格的列中,
其实这个npoi的机制是这样的,你只要是在一个单元格内自动换行,他的行高会自动适应,但是合并后就不会自动适应,所以我按照他给的思路,在同行的一个没合并的单元格改为和合并的单元格一个宽度,然后自动换行,高度会自动适应,但是他机制很奇怪,删除了那个单元格,这个高度自适应又会还原,很头疼1. 我当时的操作是放在最后,新增一列,回头直接删列就行
2. 在删除以后,不能有任何自适应行高的代码我刚才测试了下,我放到最后才删除,还是会还原,心累
噢,我回答的是上面的问题,按照他的思路,我删除的是复制到一个没有合并单元格的列中,
其实这个npoi的机制是这样的,你只要是在一个单元格内自动换行,他的行高会自动适应,但是合并后就不会自动适应,所以我按照他给的思路,在同行的一个没合并的单元格改为和合并的单元格一个宽度,然后自动换行,高度会自动适应,但是他机制很奇怪,删除了那个单元格,这个高度自适应又会还原,很头疼1. 我当时的操作是放在最后,新增一列,回头直接删列就行
2. 在删除以后,不能有任何自适应行高的代码我刚才测试了下,我放到最后才删除,还是会还原,心累
奇怪,可能是NPOI有什么设定的规则。我之前使用的是Aspose.Cells,回头用NPOI试试
噢,我回答的是上面的问题,按照他的思路,我删除的是复制到一个没有合并单元格的列中,
其实这个npoi的机制是这样的,你只要是在一个单元格内自动换行,他的行高会自动适应,但是合并后就不会自动适应,所以我按照他给的思路,在同行的一个没合并的单元格改为和合并的单元格一个宽度,然后自动换行,高度会自动适应,但是他机制很奇怪,删除了那个单元格,这个高度自适应又会还原,很头疼1. 我当时的操作是放在最后,新增一列,回头直接删列就行
2. 在删除以后,不能有任何自适应行高的代码我刚才测试了下,我放到最后才删除,还是会还原,心累
奇怪,可能是NPOI有什么设定的规则。我之前使用的是Aspose.Cells,回头用NPOI试试是的,很奇怪,我之前用VBA也没有这种奇怪的设定