当前位置: 首页 > news >正文

襄阳建设网站首页网站建设时间及简介

襄阳建设网站首页,网站建设时间及简介,wordpress 3.5 官方中文版,最好的网站服务器本文将继续介绍POI的使用,上接在Java中使用Apache POI导入导出Excel(二) 使用Apache POI组件操作Excel(三) 24、拆分和冻结窗格 您可以创建两种类型的窗格;冻结窗格和拆分窗格。 冻结窗格按列和行进行拆分。您创建…

本文将继续介绍POI的使用,上接在Java中使用Apache POI导入导出Excel(二)

使用Apache POI组件操作Excel(三)

24、拆分和冻结窗格

您可以创建两种类型的窗格;冻结窗格和拆分窗格。

冻结窗格按列和行进行拆分。您创建 使用以下机制的冻结窗格:

sheet1.createFreezePane( 3, 2, 3, 2 );

前两个参数是列和行 希望分裂。后两个参数表示 在右下象限中可见的单元格。

拆分窗格的显示方式不同。分割区域为 分为四个独立的工作区域。分裂 发生在像素级别,并且用户能够 通过将分割拖动到新位置来调整分割。

拆分窗格是使用以下调用创建的:

sheet2.createSplitPane( 2000, 2000, 0, 0, Sheet.PANE_LOWER_LEFT );

第一个参数是分割的 x 位置。 这是 1/20 点。本案中的一点 似乎等同于一个像素。第二个参数是 拆分的 y 位置。再次在 1/20 分。

最后一个参数指示当前具有的窗格 焦点。这将是 Sheet.PANE_LOWER_LEFT 之一, PANE_LOWER_RIGHT、PANE_UPPER_RIGHT 或 PANE_UPPER_LEFT。

Workbook wb = new XSSFWorkbook();Sheet sheet1 = wb.createSheet("new sheet");
Sheet sheet2 = wb.createSheet("second sheet");
Sheet sheet3 = wb.createSheet("third sheet");
Sheet sheet4 = wb.createSheet("fourth sheet");// Freeze just one row
sheet1.createFreezePane( 0, 1, 0, 1 );// Freeze just one column
sheet2.createFreezePane( 1, 0, 1, 0 );// Freeze the columns and rows (forget about scrolling position of the lower right quadrant).
sheet3.createFreezePane( 2, 2 );// Create a split with the lower left side being the active quadrant
sheet4.createSplitPane( 2000, 2000, 0, 0, Sheet.PANE_LOWER_LEFT );try (OutputStream fileOut = new FileOutputStream("workbook.xls")) {wb.write(fileOut);
}

25、重复行和列

可以在 使用 setRepeatingRows() 和 setRepeatingColumns() 方法。这些方法需要 CellRangeAddress 参数 ,它指定行或列的范围 重复。 对于 setRepeatingRows(),它应该指定一个范围 rows 以重复,其中 column 部分跨越所有 列。 对于 setRepeatingColumns(),它应该指定一个范围 列以重复,其中行部分跨越所有 行。 如果参数为 null,则重复的行或列 将被删除。

Workbook wb = new XSSFWorkbook();Sheet sheet1 = wb.createSheet("Sheet1");
Sheet sheet2 = wb.createSheet("Sheet2");// Set the rows to repeat from row 4 to 5 on the first sheet.
sheet1.setRepeatingRows(CellRangeAddress.valueOf("4:5"));// Set the columns to repeat from column A to C on the second sheet
sheet2.setRepeatingColumns(CellRangeAddress.valueOf("A:C"));try (OutputStream fileOut = new FileOutputStream("workbook.xls")) {wb.write(fileOut);
}

26、页眉和页脚

示例适用于页眉,但直接应用于页脚。

Workbook wb = new XSSFWorkbook();Sheet sheet = wb.createSheet("new sheet");Header header = sheet.getHeader();
header.setCenter("Center Header");
header.setLeft("Left Header");
header.setRight(HSSFHeader.font("Stencil-Normal", "Italic") +HSSFHeader.fontSize((short) 16) + "Right w/ Stencil-Normal Italic font and size 16");try (OutputStream fileOut = new FileOutputStream("workbook.xls")) {wb.write(fileOut);
}

27、页眉和页脚的 XSSF 增强功能

示例适用于页眉,但直接应用于页脚。请注意,上面的 基本页眉和页脚适用于 XSSF 工作簿以及 HSSF 工作簿。HSSFHeader 公司 stuff 不适用于 XSSF 工作簿。

XSSF 能够处理首页页眉和页脚,以及偶数/奇数 页眉和页脚。所有页眉/页脚属性标志也可以在 XSSF 中处理。 奇数页眉和页脚是默认的页眉和页脚。它显示在所有 不显示首页页眉或不显示偶数页页眉的页面。那是 如果偶数页眉/页脚不存在,则奇数页眉/页脚显示在 甚至页面。如果第一页页眉/页脚不存在,则奇数页眉/页脚 显示在第一页上。如果未设置 even/odd 属性,则与 偶数页眉/页脚不存在。如果 first page 属性不存在,则为 与第一页页眉/页脚不存在相同。

Workbook wb = new XSSFWorkbook();XSSFSheet sheet = (XSSFSheet) wb.createSheet("new sheet");// Create a first page header
Header header = sheet.getFirstHeader();
header.setCenter("Center First Page Header");
header.setLeft("Left First Page Header");
header.setRight("Right First Page Header");// Create an even page header
Header header2 = sheet.getEvenHeader();
der2.setCenter("Center Even Page Header");
header2.setLeft("Left Even Page Header");
header2.setRight("Right Even Page Header");// Create an odd page header
Header header3 = sheet.getOddHeader();
der3.setCenter("Center Odd Page Header");
header3.setLeft("Left Odd Page Header");
header3.setRight("Right Odd Page Header");// Set/Remove Header properties
XSSFHeaderProperties prop = sheet.getHeaderFooterProperties();
prop.setAlignWithMargins();
prop.scaleWithDoc();
prop.removeDifferentFirstPage(); // This does not remove first page headers or footers
prop.removeDifferentEvenOdd(); // This does not remove even headers or footerstry (OutputStream fileOut = new FileOutputStream("workbook.xlsx")) {wb.write(fileOut);
}

28、绘制形状

POI 支持使用 Microsoft Office 绘制形状 绘图工具。图纸上的形状以 组和 AND 形状的层次结构。最顶层的形状 是族长。这在工作表上不可见 完全。要开始绘制,您需要在 XSSFSheet 类上调用 createPatriarch。这具有 效果擦除存储的任何其他形状信息 在那张纸上。默认情况下,POI 将保留形状 记录在工作表中,除非您调用 此方法。

要创建形状,您必须完成以下操作 步骤:

  1. 创建 Patriarch。
  2. 创建锚点以将形状定位在图纸上。
  3. 请族长创建形状。
  4. 设置形状类型(线条、椭圆、矩形等)
  5. 设置有关形状的任何其他样式详细信息。(例如: 线条粗细等)
XSSFPatriarch patriarch = sheet.createDrawingPatriarch();
a = new XSSFClientAnchor( 0, 0, 1023, 255, (short) 1, 0, (short) 1, 0 );XSSFSimpleShape shape1 = patriarch.createSimpleShape(a1);
shape1.setShapeType(XSSFSimpleShape.OBJECT_TYPE_LINE);

文本框是使用其他调用创建的:

XSSFTextbox textbox1 = patriarch.createTextbox(new XSSFClientAnchor(0,0,0,0,(short)1,1,(short)2,2));
textbox1.setString(new XSSFRichTextString("This is a test") );

可以使用不同的字体来设置 TextBox 中的文本。方法如下:

XSSFFont font = wb.createFont();
font.setItalic(true);
font.setUnderline(XSSFFont.U_DOUBLE);
XSSFRichTextString string = new XSSFRichTextString("Woo!!!");
string.applyFont(2,5,font);
textbox.setString(string );

就像使用 Excel 手动完成一样,将形状组合在一起这是可能的。这是通过使用这些组调用 createGroup()创建形状。也可以在组内创建组。

警告:您创建的任何组都应至少包含两个 其他形状或子组。

以下是创建形状组的方法:

// Create a shape group.
XSSFShapeGroup group = patriarch.createGroup(new XSSFClientAnchor(0,0,900,200,(short)2,2,(short)2,2));// Create a couple of lines in the group.
XSSFSimpleShape shape1 = group.createShape(new XSSFChildAnchor(3,3,500,500));shape1.setShapeType(XSSFSimpleShape.OBJECT_TYPE_LINE);((XSSFChildAnchor) shape1.getAnchor()).setAnchor(3,3,500,500);XSSFSimpleShape shape2 = group.createShape(new XSSFChildAnchor(1,200,400,600));
shape2.setShapeType(XSSFSimpleShape.OBJECT_TYPE_LINE);

如果你仔细观察,你会注意到形状 添加到组中的锚点使用新类型的锚点: XSSFChildAnchor 的 Anchor 中。发生的事情是 创建的组具有自己的坐标空间 放置在其中的形状。POI 默认将其设置为 (0,0,1023,255),但您可以根据需要更改它。 方法如下:

myGroup.setCoordinates(10,10,20,20); // top-left, bottom-right

如果您在一个组中创建一个组,它也会 拥有自己的坐标空间。

29、样式化形状

默认情况下,形状看起来有点普通。可对形状应用不同的样式。目前可以做的事情包括:

  • 更改填充颜色。
  • 创建没有填充颜色的形状。
  • 更改线条的粗细。
  • 更改线条的样式。例如:虚线、点。
  • 更改线条颜色。

以下是如何执行此操作的示例:

XSSFSimpleShape s = patriarch.createSimpleShape(a);s.setShapeType(XSSFSimpleShape.OBJECT_TYPE_OVAL);
s.setLineStyleColor(10,10,10);
s.setFillColor(90,10,200);
s.setLineWidth(XSSFShape.LINEWIDTH_ONE_PT * 3);
s.setLineStyle(XSSFShape.LINESTYLE_DOTSYS);

30、形状和图形2D

虽然原生 POI 形状绘制命令是 在形状中绘制形状的推荐方法有时 最好使用标准 API 以兼容 外部库。考虑到这一点,我们创建了一些 Graphics 和 Graphics2d 的包装器。

所有图形命令都发送到 XSSFShapeGroup 中。 这是如何完成的:

a = new XSSFClientAnchor( 0, 0, 1023, 255, (short) 1, 0, (short) 1, 0 );group = patriarch.createGroup( a );
group.setCoordinates( 0, 0, 80 * 4 , 12 * 23  );float verticalPointsPerPixel = a.getAnchorHeightInPoints(sheet) / (float)Math.abs(group.getY2() - group.getY1());g = new EscherGraphics( group, wb, Color.black, verticalPointsPerPixel );g2d = new EscherGraphics2d( g );drawChemicalStructure( g2d );

我们做的第一件事是创建组并设置其坐标 以匹配我们计划绘制的内容。接下来我们计算一个合理的 fontSizeMultiplier 创建 EscherGraphics 对象。 由于我们真正需要的是 Graphics2d 对象,因此我们创建一个 EscherGraphics2d 对象并传入 我们创建的 Graphics 对象。最后,我们调用 routine ,该对象将绘制到 EscherGraphics2d 对象中。

每个像素的垂直点值得更多解释。 转换 Graphics 调用的难点之一 进入 Escher 绘图调用是 Excel 没有 绝对像素位置的概念。它衡量 它的单元格宽度(以 'characters' 为单位)和单元格高度(以磅为单位)。 不幸的是,它没有明确定义它是什么类型的角色 测量。据推测,这是因为 Excel 将是 在不同平台上甚至在同一平台内使用不同的字体 平台。

由于这个约束,我们不得不实现 verticalPointsPerPixel 的 Pixel。这是字体在以下时间应缩放的量 您发出 drawString() 等命令。计算此值 使用以下公式:

multipler = groupHeightInPoints / heightOfGroup

组的高度计算相当简单,方法是计算 形状的边界框的 y 坐标之间的差异。这 可以使用名为 HSSFClientAnchor.getAnchorHeightInPoints() 的便利性来计算组的高度。

graphics 类支持的许多函数 不完整。以下是一些已知的函数 工作。

  • fillRect()
  • fillOval()
  • drawString()
  • drawOval()
  • drawLine()
  • clearRect()

不支持的函数将返回并记录一条消息 使用 POI 日志记录基础设施(默认处于禁用状态)。

http://www.yayakq.cn/news/565617/

相关文章:

  • wordpress 整站移植专业网站设计第三方服务
  • 平凉城乡建设局网站摄影师个人网站怎么做
  • 网站建设 phpwordpress 编辑器标签
  • 如何黑网站长沙关键词优化平台
  • 怎么创建网站相册学动漫设计需要什么条件
  • 温泉酒店网站建设方案高端品牌护肤品有哪些
  • 怎么样购买网站空间河南省城市建设网站
  • 建设的电影网站总是无法连接河北省建设厅工程信息网站
  • 个体网站建设it外包公司联系电话
  • 网站开发公司可行报告网站建设客户相关问题
  • 模版网站商城南庄建网站
  • 韩国网站怎么打开甘孜州建设局门户网站
  • 如何做商业推广网站小智logo在线制作
  • seo证书考试网站网站开发的基本条件
  • 织梦网做网站品牌建设成效
  • 深建市住房和城乡建设局网站做h的动漫在线观看网站
  • 网站备案抽查网站移动端就是app吗
  • 网站开发系统搭建网站怎么加ico
  • 网站快速排名服务wix和wordpress哪个好
  • 打开一个网站在建设中晋中企业网站建设
  • 专做生存设计的网站重庆专业平台推广公司
  • 德州市住房和城乡建设部网站大连外贸网站制作
  • 网站的投票系统怎么做什么是推广员
  • 自己做网站不用WordPress网站建设合同概念
  • 道滘镇网站建设上海十大公司
  • 网站导航栏图标网站制作哪家最好
  • 中国建设网站用户名江门平台入口
  • 深互动平台网站官方网站数据如何做脚注
  • 个人网站域名起名织梦网站程序安装教程
  • 用sql网站建设基本流程建设网站的步骤seo