剪贴板支持
文档模型提供了复制和粘贴多个值的简单方法。该库提供了灵活的API,允许您选择粘贴区域中包含的内容和格式。本文演示如何使用不同的粘贴选项复制和粘贴数据。
复制
要复制出现在工作表中的值,请创建CellSelection的单元格区域,并调用其副本()方法。方法返回一个WorksheetFragment实例,该实例只保存复制的值。的WorksheetFragment是一个工作表,用于保存复制的数据及其属性。方法将工作表片段传递给粘贴()方法以获取粘贴到另一个工作表中的值。
示例1创建一个带有单个工作表的新工作簿,并将一些示例值分配给A1:B3区域。此外,代码为单元格区域创建一个选择,并调用其副本()方法。返回的WorksheetFragment以后可以用于粘贴操作。
示例1:复制选定的单元格
Workbook Workbook = new Workbook();工作表工作表= workbook.Worksheets.Add();工作表。细胞(0,0).SetValue(“产品”);工作表。细胞(1,0).SetValue(“服务”);工作表。细胞[0,1].SetValue (17.4);工作表。细胞[1].SetValue (12.9); worksheet.Cells[2, 0].SetValue("Total"); worksheet.Cells[2, 1].SetValue("=SUM(A1:B1)"); CellRange copiedCellRange = new CellRange(0, 0, 2, 1); WorksheetFragment worksheetFragment = worksheet.Cells[copiedCellRange].Copy();
粘贴
文档模型提供对粘贴区域中包含的内容和格式的控制。的粘贴()方法需要两个参数WorksheetFragment包含要粘贴的值和PasteOptions实例,该实例确定将从片段粘贴的信息的类型。的PasteOptions类引入PasteType属性,它指示粘贴的类型。以下是支持的粘贴类型:
所有:粘贴所有内容,包括文本、数字、公式及其格式。
公式:粘贴文本、数字和公式。但是,此选项忽略单元格格式。
公式和数字格式:粘贴文本、数字和公式,并将复制的单元格格式应用于粘贴的单元格。
列宽:粘贴文本、数字和公式,并将复制的单元格的列宽度应用于粘贴的单元格。
值:粘贴公式的计算结果,忽略格式和列宽。
值和数字格式:将任何公式的计算结果和复制的单元格的格式粘贴到粘贴的单元格中。
格式化:仅将复制的单元格的格式粘贴到粘贴的单元格。
示例2创建带有空工作表的新工作簿。此外,该示例设置了价值的细胞A1to =CONCATENATE("Rad","Spreadsheet")和它的字体颜色绿色。的内容A1然后粘贴进去A2使用所有PasteType。
例2:全部复制
Workbook Workbook = new Workbook();工作表工作表= workbook.Worksheets.Add();工作表。细胞(0,0)。SetValue(“=连接(\“Rad \”,\“电子表格\”)”);工作表。细胞(0,0)。SetForeColor(新ThemableColor (Colors.Green));WorksheetFragment WorksheetFragment =工作表。细胞(0,0).Copy ();PasteOptions = new PasteOptions(PasteType.All); worksheet.Cells[1, 0].Paste(worksheetFragment, pasteOptions);
使用不同的PasteType,然而,产生不同的输出。示例3的内容粘贴A1与值它的结果是值“RadSpreadsheet”而不是=CONCATENATE(“Rad”,“Spreadsheet”)和默认值字体颜色代替绿色:
例3:使用PasteType进行粘贴。值
PasteOptions pasteOptionsValues = new PasteOptions(PasteType.Values);工作表。细胞(2,0)。粘贴(worksheetFragment, pasteOptionsValues);
如果您想粘贴包含的公式A1,既保持其结果,又保持其格式,相结合值而且格式粘贴类型:
示例4组合“值”和“格式”粘贴类型,并保留复制的单元格选择的内容和格式。
例4:结合值和格式的PasteType
PasteOptions valuesAndFormatting = new PasteOptions(PasteType.)公式| PasteType.Formats);工作表。细胞[3,0]。粘贴(worksheetFragment, valuesAndFormatting);