1. 如何在NPOI中实现宽度自适应和高度自适应
由于系统需要在网页上导出Excel文件,最近花了一段时间去学习NPOI插件。
通过NPOI插件在服务端来生成Excel文件流并下载到本地。NPOI实际上和Excel一毛钱关系都没有,它只是完全破译了Excel文件的存储格式,并用C#来生成同样的格式从而被识别为Excel文件。
NPOI和Excel VBA相比优点很多,首先是Excel VBA中的对象太多,而且是基于Visual Basic语言来书写,而且是在Excel中进行编程开发,IDE十分原始,没有任何的智能感知和代码着色功能。(最近可以在VS进行VBA开发了)抛开这些不说,微软官方是不建议在服务器端来操作Excel的。
原话好像是不建议用asp,asp.net等无人的方式来使用Excel。而且最要命的是VBA方式来操作Excel后,其进程很难释放干净。
在桌面端生成一两个文件倒无所谓,后台多跑两个Excel也不是啥大事。但在服务器端多用户操作,很有可能会出现死锁等问题。
NPOI是从JAVA的POI移植而来,使用方式非常自然。 但是我发现在NPOI中实现宽度和高度自适应很难,宽度和高度自适应,说简单点就是如何让宽度和高度刚刚好。
不让内容被遮挡,使用者在下载表格后不需要手工调整。
2. bootstrap表格的宽度是自己设置的么
将所有列设置为固定宽度,显然是不能满足此类要求的,但是若把全部的列都设置为百分比,恐怕在某些尺寸,或分辨率下,会变得很难看。
在Bigtree看来,比较习惯于用如下的方式来处理——在表格列数不是很多的前提下——将大部分列宽用固定值设置死,留下一列不设置宽度,将table的宽度设置为屏幕的百分比(譬如95%、98%等)。例:序号分类A分类B名称说明操作……在本例中,名为“说明”的列,内容比较长,个人认为可以将此列设置为浮动宽度列,用以自适应页面的宽度。
但是当该表格中出现长度比列幅宽的半角字符时,td的宽度会被内容撑破,应该如何解决呢?解决此问题的方法是:在明细行的td中,追加style="word-wrap:break-word;",这样做可以使半角连续字符强制换行,不至于撑破列宽。例:……应用此方法,针对设置了width宽度的td列可以解决,但是如果没有设置宽度的td列,是无法生效还是会被撑破td的,应该如何解决呢?解决此问题的方法是:在定义表格时,追加style="table-layout:fixed;",这样做可以使半角连续字符强制换行,不至于撑破列宽。
需要注意的是,使用此参数后,不要轻易在tr(行)或td(列)中加入height属性,会使table不再被内容撑出适合的高度。例:效果图。
3. npoi 在word中创建的table怎么在页面设置居中
static void Main(string[] args)
{
XWPFDocument doc = new XWPFDocument();
XWPFTable table = doc.CreateTable(3, 3);
table.GetRow(1).GetCell(1).SetText("EXAMPLE OF TABLE");
XWPFParagraph p1 = doc.CreateParagraph();
XWPFRun r1 = p1.CreateRun();
r1.SetBold(true);
r1.SetText("The quick brown fox");
r1.SetBold(true);
r1.SetFontFamily("Courier");
r1.SetUnderline(UnderlinePatterns.DotDotDash);
r1.SetTextPosition(100);
table.GetRow(0).GetCell(0).SetParagraph(p1);
table.GetRow(2).GetCell(2).SetText("only text");
FileStream out1 = new FileStream("simpleTable.docx", FileMode.Create);
doc.Write(out1);
out1.Close();
}
转载请注明出处51数据库 » npoiwordtable宽度