当前位置: 首页 > 知识库问答 >
问题:

用F#和Gembox.spreadsheet“堆叠”单元格样式

宇文智敏
2023-03-14
open System
open System.Data
open System.Xml
open System.Linq
open System.Text
open System.Drawing
open GemBox.Spreadsheet

SpreadsheetInfo.SetLicense("FREE-LIMITED-KEY")

//initialize a new ExcelFile
let excelFile = new ExcelFile()

//Create a new worksheet in the excel object
let ws = excelFile.Worksheets.Add("data")

//Create a new DataTable to fill with data
let dt = new DataTable("dataTable")
dt.MinimumCapacity <- 1

let dcStatus = new DataColumn("Status")
let dcNumber = new DataColumn("Number")

//Add the columns to the DataTable, dt
dt.Columns.Add(dcStatus)
dt.Columns.Add(dcNumber)

dt.Rows.Add("Status", "Number")
dt.Rows.Add("Not Started - behind schedule", 3)
dt.Rows.Add("In Progress - behind schedule", 5)
dt.Rows.Add("Withdrawn", 3)
dt.Rows.Add("Total", 11)

//Define red style
let redStyle = new CellStyle()

redStyle.Font.Color <- SpreadsheetColor.FromName(ColorName.Red)

//Define bold style
let boldStyle = new CellStyle()

boldStyle.Font.Weight <- ExcelFont.BoldWeight

//Apply redStyle to row 1:3 and cols 0:1
ws.Cells.GetSubrangeAbsolute(1,0, 3, 1).Style <- redStyle

//Apply boldStyle to row 1:3, col 0
ws.Cells.GetSubrangeAbsolute(1, 0, 4, 0).Style <- boldStyle

//Insert datatable with GemBoxSpreadsheet options; GemBox starts with cell A1 as [0,0]
//StartRow == 0, StartColumn == 0
ws.InsertDataTable(dt, InsertDataTableOptions(0, 0))

//Set Col with of first column to autofit
ws.Columns.[0].AutoFit()

//Write excelFile to filePath
excelFile.Save("[YOUR_LOCAL_FILEPATH/]filename.xlsx")'

共有1个答案

慕容成和
2023-03-14

所以你定义了一个新的样式。仅设置必要的部件:

//Apply redStyle to row 1:3 and cols 0:1
ws.Cells.GetSubrangeAbsolute(1, 0, 3, 1).Style <- redStyle

//Apply boldStyle to row 1:3, col 0
ws.Cells.GetSubrangeAbsolute(1, 0, 4, 0).Style.Font.Weight <- ExcelFont.BoldWeight

之前:

现在:

 类似资料:
  • 问题内容: 我能够展开和折叠单元格,但我想在UITableViewCell内调用函数(展开和折叠)以更改按钮标题。 问题答案: 如果你想在细胞获得更大的身体,那么,你有你的店,在使用: 然后,当您想在didSelectRow中展开一个时: 编辑 这将使单元动画自己变大,您不需要单元中额外的动画块。 编辑2

  • setColumn 样式影响范围为整列。 设置 range 参数为 A1:D1,第一反应是设置第一行的前四个单元格样式,但是实际效果确是设置 第一列、第二列、第三列、第四列 整列。 函数原型 setColumn(string $range, double $width [, resource $formatHandler]); string $range $config = ['path' =>

  • setRow 样式影响范围为整行。 设置 range 参数为 A1:D1,第一反应是设置第一行的前四个单元格样式,但是实际效果确是设置 第一行整行。 如果是 A1:B3 ,就会设置 第一行、第二行、第三行样式,因为单元格范围覆盖了 第一行、第二行、第三行。 函数原型 setRow(string $range, double $height [, resource $formatHandler]);

  • 通常我们可能会认为 HTML 网页是个二维的平面,因为页面中的文本、图像或者其它元素都是按照一定顺序排列在页面上的,每个元素之间都有一定的间隙,不会重叠。然而,实际的网页其实是三维的,元素之间可能会发生堆叠(重叠),您可以通过 CSS 中的 z-index 属性来设置元素的堆叠顺序,如下图所示: 图:元素堆叠演示 每个元素都有一个默认的 z-index 属性,将 z-index 属性与 posit

  • 我无法将此行的样式设置为: 它给我的错误是“无法在基元类型void上调用setCellValue(String)”。这种情况下的错误是什么?我如何在单行代码中实现所有3个目标?

  • 我有一个SVG元素,它包含两个尺寸和位置完全相同的子元素。两者唯一的区别是它们的颜色:第一个是红色,第二个是绿色。我注意到,即使绿色的圆圈在红色的上面,你仍然可以看到在圆圈的边缘有一点颜色偏移。我有什么办法可以避免这种颜色的变化吗? 下面是一张屏幕截图,显示了有红圈和没有红圈的情况: 这里还有我用来复制这个的小提琴。 null 欢迎任何不同的想法。