用NPOI生成包含富文本字符串(Rich Text String)的单元格
作者: Ken Yang
NPOI允许用户生成包含有富文本字符串的单元格。换句话说,你可以为同一个单元格内的字符串的不同部分设置不同的字体、颜色、下划线等等。
Imports System.IO Imports NPOI.HSSF.UserModel Imports NPOI.HPSF Imports NPOI.HSSF.Util Imports NPOI.POIFS.FileSystem Imports NPOI.SS.UserModel Module Module1 Sub Main() Dim workbook As HSSFWorkbook = New HSSFWorkbook() Dim dsi As DocumentSummaryInformation = PropertySetFactory.CreateDocumentSummaryInformation dsi.Company = "Company Name" Dim si As SummaryInformation = PropertySetFactory.CreateSummaryInformation si.Author = "Ken Yang" si.Subject = "Generating Rich Text String using NPOI" Workbook.DocumentSummaryInformation = dsi Workbook.SummaryInformation = si Dim ws As Sheet = workbook.CreateSheet("sheet1") Dim r1 As Row = ws.CreateRow(0) Dim a1 As Cell = r1.CreateCell(0) ws.SetColumnWidth(0, 4000) r1.HeightInPoints = 51 Dim style = workbook.CreateCellStyle() style.WrapText = True a1.CellStyle = style '设置富文本字符串 Dim rts As HSSFRichTextString = New HSSFRichTextString("Red String." + vbLf + "Bold Text" + vbLf + "Strikeout Text" + vbLf + "Normal Text") '设置红色字体 Dim redFont As HSSFFont = workbook.CreateFont() redFont.Color = HSSFColor.RED.index '设置粗体 Dim boldFont As HSSFFont = workbook.CreateFont boldFont.Boldweight = 700 '设置删除线 Dim strikeoutFont As HSSFFont = workbook.CreateFont() strikeoutFont.IsStrikeout = True '设置富文本字符串的字体 rts.ApplyFont(0, 11, redFont) rts.ApplyFont(12, 21, boldFont) rts.ApplyFont(22, 36, strikeoutFont) '将富文本字符串赋给A1单元格 a1.SetCellValue(rts) Dim file As FileStream = New FileStream("e:\text.xls", FileMode.Create) workbook.Write(file) End Sub End Module
效果截图: