使用Node.js via C++格式化单元格
介绍
使用GetStyle和SetStyle方法格式化单元格
在单元格上应用不同种类的格式样式,设置背景或前景颜色、边框、字体、水平和垂直对齐、缩进级别、文本方向、旋转角度等。
使用GetStyle和SetStyle方法
如果开发人员需要对不同的单元格应用不同的格式,可以先用 Cell.getStyle() 方法获取单元格的 Style ,指定样式属性,然后用 Cell.setStyle(Style) 方法应用格式。下面的示例演示了如何对一个单元格使用多种格式。
const path = require("path");
const AsposeCells = require("aspose.cells.node");
// The path to the documents directory.
const dataDir = path.join(__dirname, "data");
// Instantiating a Workbook object
const workbook = new AsposeCells.Workbook();
// Obtaining the reference of the first worksheet
const worksheet = workbook.getWorksheets().get(0);
// Accessing the "A1" cell from the worksheet
const cell = worksheet.getCells().get("A1");
// Adding some value to the "A1" cell
cell.putValue("Hello Aspose!");
// Defining a Style object
let style;
// Get the style from A1 cell
style = cell.getStyle();
// Setting the vertical alignment
style.setVerticalAlignment(AsposeCells.TextAlignmentType.Center);
// Setting the horizontal alignment
style.setHorizontalAlignment(AsposeCells.TextAlignmentType.Center);
// Setting the font color of the text
style.getFont().setColor(AsposeCells.Color.Green);
// Setting to shrink according to the text contained in it
style.setShrinkToFit(true);
// Setting the bottom border color to red
style.getBorders().get(AsposeCells.BorderType.BottomBorder).setColor(AsposeCells.Color.Red);
// Setting the bottom border type to medium
style.getBorders().get(AsposeCells.BorderType.BottomBorder).setLineStyle(AsposeCells.CellBorderType.Medium);
// Applying the style to A1 cell
cell.setStyle(style);
// Saving the Excel file
workbook.save(path.join(dataDir, "book1.out.xls"));
如何使用样式对象为不同单元格设置格式
如果开发人员需要对不同的单元格应用相同的样式,可以使用 Style 对象。请按照以下步骤使用 Style 对象:
- 通过调用 Workbook 类的 createStyle() 方法添加 Style 对象
- 访问新添加的 Style 对象
- 设置 Style 对象的属性/特性以应用所需的格式
- 将配置好的 Style 对象赋值给目标单元格
这种方法可以极大地提高您的应用程序的效率,并节省内存。
const path = require("path");
const AsposeCells = require("aspose.cells.node");
// The path to the documents directory.
const dataDir = path.join(__dirname, "data");
// Instantiating a Workbook object
const workbook = new AsposeCells.Workbook();
// Adding a new worksheet to the Excel object
const i = workbook.getWorksheets().add();
// Obtaining the reference of the first worksheet by passing its sheet index
const worksheet = workbook.getWorksheets().get(i);
// Accessing the "A1" cell from the worksheet
const cell = worksheet.getCells().get("A1");
// Adding some value to the "A1" cell
cell.putValue("Hello Aspose!");
// Adding a new Style
const style = workbook.createStyle();
// Setting the vertical alignment of the text in the "A1" cell
style.setVerticalAlignment(AsposeCells.TextAlignmentType.Center);
// Setting the horizontal alignment of the text in the "A1" cell
style.setHorizontalAlignment(AsposeCells.TextAlignmentType.Center);
// Setting the font color of the text in the "A1" cell
style.getFont().setColor(AsposeCells.Color.Green);
// Shrinking the text to fit in the cell
style.setShrinkToFit(true);
// Setting the bottom border color of the cell to red
style.getBorders().get(AsposeCells.BorderType.BottomBorder).setColor(AsposeCells.Color.Red);
// Setting the bottom border type of the cell to medium
style.getBorders().get(AsposeCells.BorderType.BottomBorder).setLineStyle(AsposeCells.CellBorderType.Medium);
// Assigning the Style object to the "A1" cell
cell.setStyle(style);
// Apply the same style to some other cells
worksheet.getCells().get("B1").setStyle(style);
worksheet.getCells().get("C1").setStyle(style);
worksheet.getCells().get("D1").setStyle(style);
// Saving the Excel file
workbook.save(path.join(dataDir, "book1.out.xls"));
如何使用Microsoft Excel 2007预定义样式
如果您需要为Microsoft Excel 2007应用不同的格式样式,请使用Aspose.Cells API应用样式。下面的示例演示了如何使用这种方法在单元格上应用预定义样式。
const path = require("path");
const AsposeCells = require("aspose.cells.node");
// The path to the documents directory.
const dataDir = path.join(__dirname, "data");
// Instantiate a new Workbook.
const workbook = new AsposeCells.Workbook();
// Create a style object.
const style = workbook.createStyle();
// Input a value to A1 cell.
workbook.getWorksheets().get(0).getCells().get("A1").putValue("Test");
// Apply the style to the cell.
workbook.getWorksheets().get(0).getCells().get("A1").setStyle(style);
// Save the Excel 2007 file.
workbook.save(path.join(dataDir, "book1.out.xlsx"));
如何格式化单元格中的选定字符
处理字体设置解释了如何格式化单元格中的文本,但它只解释了如何格式化所有单元格内容。如果您只想格式化选定的字符怎么办?
Aspose.Cells 也支持此功能。本文将说明如何有效使用此功能。
如何格式化选定的字符
Aspose.Cells 提供了一个表示 Microsoft Excel 文件的类 Workbook。Workbook类包含一个 getWorksheets() 集合,可以访问Excel文件中的每个工作表。工作表由 Worksheet 类表示。Worksheet 类提供一个 getCells() 集合。getCells() 集合中的每个项目代表一个 Cell 类的对象。
Cell 类提供了 characters(number, number) 方法,接受以下参数以选择单元格内部的字符范围:
- 起始索引,选择开始的字符的索引。
- 字符数,要选择的字符数。
characters(number, number) 方法返回 FontSetting 类的实例,允许开发者以与格式化单元格相同的方式格式化字符,示例如下。在输出文件中,单元格A1中的“Visit”将采用默认字体格式,“Aspose!”将加粗且为蓝色。
const path = require("path");
const AsposeCells = require("aspose.cells.node");
// The path to the documents directory.
const dataDir = path.join(__dirname, "data");
// Instantiating a Workbook object
const workbook = new AsposeCells.Workbook();
// Obtaining the reference of the first(default) worksheet by passing its sheet index
const worksheet = workbook.getWorksheets().get(0);
// Accessing the "A1" cell from the worksheet
const cell = worksheet.getCells().get("A1");
// Adding some value to the "A1" cell
cell.putValue("Visit Aspose!");
// Setting the font of selected characters to bold
const font = cell.characters(6, 7).getFont();
font.isBold = true;
// Setting the font color of selected characters to blue
font.color = AsposeCells.Color.Blue;
// Saving the Excel file
workbook.save(path.join(dataDir, "book1.out.xls"));
如何格式化行和列
有时,开发人员需要在行或列上应用相同的格式。逐个单元格应用格式通常需要更长时间,不是一个好的解决方案。 为解决这个问题,Aspose.Cells提供了一个在本文中详细讨论的简单、快速的方法。
格式化行和列
Aspose.Cells 提供一个代表 Microsoft Excel 文件的类 Workbook。Workbook 类包含一个 getWorksheets() 集合,可以访问Excel文件中的每个工作表。工作表由 Worksheet 类表示。Worksheet 类提供一个 getCells() 集合。getCells() 集合提供一个 getRows() 集合。
如何格式化一行
getRows() 集合中的每个项代表一个 Row 对象。Row 对象提供用于设置行格式的 applyStyle(Style, StyleFlag) 方法。若要对一行应用相同的格式,可以使用 Style 对象。以下步骤演示了如何使用它。
- 通过调用 createStyle() 类的 Workbook 方法,将 Style 对象添加到 Workbook 类中。
- 设置 Style 对象的属性以应用格式设置。
- 将相关属性开启到 StyleFlag 对象。
- 将配置好的 Style 对象分配给 Row 对象。
const path = require("path");
const AsposeCells = require("aspose.cells.node");
// The path to the documents directory.
const dataDir = path.join(__dirname, "data");
// Instantiating a Workbook object
const workbook = new AsposeCells.Workbook();
// Obtaining the reference of the first (default) worksheet by passing its sheet index
const worksheet = workbook.getWorksheets().get(0);
// Adding a new Style to the styles
const style = workbook.createStyle();
// Setting the vertical alignment of the text in the "A1" cell
style.setVerticalAlignment(AsposeCells.TextAlignmentType.Center);
// Setting the horizontal alignment of the text in the "A1" cell
style.setHorizontalAlignment(AsposeCells.TextAlignmentType.Center);
// Setting the font color of the text in the "A1" cell
style.getFont().setColor(AsposeCells.Color.Green);
// Shrinking the text to fit in the cell
style.setShrinkToFit(true);
// Setting the bottom border color of the cell to red
style.getBorders().get(AsposeCells.BorderType.BottomBorder).setColor(AsposeCells.Color.Red);
// Setting the bottom border type of the cell to medium
style.getBorders().get(AsposeCells.BorderType.BottomBorder).setLineStyle(AsposeCells.CellBorderType.Medium);
// Creating StyleFlag
const styleFlag = new AsposeCells.StyleFlag();
styleFlag.setHorizontalAlignment(true);
styleFlag.setVerticalAlignment(true);
styleFlag.setShrinkToFit(true);
styleFlag.setBorders(true);
styleFlag.setFontColor(true);
// Accessing a row from the Rows collection
const row = worksheet.getCells().getRows().get(0);
// Assigning the Style object to the Style property of the row
row.applyStyle(style, styleFlag);
// Saving the Excel file
workbook.save(path.join(dataDir, "book1.out.xls"));
如何格式化一列
getCells() 集合还提供一个 getColumns() 集合。每个项代表一个 Column 对象。类似于 Row 对象,Column 也提供 applyStyle(Style, StyleFlag) 方法用于格式化列。
const path = require("path");
const AsposeCells = require("aspose.cells.node");
// The path to the documents directory.
const dataDir = path.join(__dirname, "data");
// Instantiating a Workbook object
const workbook = new AsposeCells.Workbook();
// Obtaining the reference of the first (default) worksheet by passing its sheet index
const worksheet = workbook.getWorksheets().get(0);
// Adding a new Style to the styles
const style = workbook.createStyle();
// Setting the vertical alignment of the text in the "A1" cell
style.setVerticalAlignment(AsposeCells.TextAlignmentType.Center);
// Setting the horizontal alignment of the text in the "A1" cell
style.setHorizontalAlignment(AsposeCells.TextAlignmentType.Center);
// Setting the font color of the text in the "A1" cell
style.getFont().setColor(AsposeCells.Color.Green);
// Shrinking the text to fit in the cell
style.setShrinkToFit(true);
// Setting the bottom border color of the cell to red
style.getBorders().get(AsposeCells.BorderType.BottomBorder).setColor(AsposeCells.Color.Red);
// Setting the bottom border type of the cell to medium
style.getBorders().get(AsposeCells.BorderType.BottomBorder).setLineStyle(AsposeCells.CellBorderType.Medium);
// Creating StyleFlag
const styleFlag = new AsposeCells.StyleFlag();
styleFlag.setHorizontalAlignment(true);
styleFlag.setVerticalAlignment(true);
styleFlag.setShrinkToFit(true);
styleFlag.setBorders(true);
styleFlag.setFontColor(true);
// Accessing a column from the Columns collection
const column = worksheet.getCells().getColumns().get(0);
// Applying the style to the column
column.applyStyle(style, styleFlag);
// Saving the Excel file
workbook.save(path.join(dataDir, "book1.out.xls"));