名前付き範囲の書式および変更
範囲の書式設定
指定した範囲に背景色とフォント属性を設定する
書式を適用するには、Style オブジェクトを定義してスタイル設定を指定し、そのスタイルをRange オブジェクトに適用します。
次の例では範囲に実線の塗りつぶし色(シェーディング色)とフォント設定を設定する方法を示しています。
// For complete examples and data files, please go to https://github.com/aspose-cells/Aspose.Cells-for-.NET | |
// The path to the documents directory. | |
string dataDir = RunExamples.GetDataDir(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType); | |
// Create directory if it is not already present. | |
bool IsExists = System.IO.Directory.Exists(dataDir); | |
if (!IsExists) | |
System.IO.Directory.CreateDirectory(dataDir); | |
// Instantiate a new Workbook. | |
Workbook workbook = new Workbook(); | |
// Get the first worksheet in the book. | |
Worksheet WS = workbook.Worksheets[0]; | |
// Create a range of cells. | |
Aspose.Cells.Range range = WS.Cells.CreateRange(1, 1, 1, 18); | |
// Name the range. | |
range.Name = "MyRange"; | |
// Declare a style object. | |
Style stl; | |
// Create/add the style object. | |
stl = workbook.CreateStyle(); | |
// Specify some Font settings. | |
stl.Font.Name = "Arial"; | |
stl.Font.IsBold = true; | |
// Set the font text color | |
stl.Font.Color = Color.Red; | |
// To Set the fill color of the range, you may use ForegroundColor with | |
// Solid Pattern setting. | |
stl.ForegroundColor = Color.Yellow; | |
stl.Pattern = BackgroundType.Solid; | |
// Create a StyleFlag object. | |
StyleFlag flg = new StyleFlag(); | |
// Make the corresponding attributes ON. | |
flg.Font = true; | |
flg.CellShading = true; | |
// Apply the style to the range. | |
range.ApplyStyle(stl, flg); | |
// Save the excel file. | |
workbook.Save(dataDir + "rangestyles.out.xls"); |
名前付き範囲に境界線を追加する
単一のセルではなく、セルの範囲に境界線を追加することが可能です。Range オブジェクトには、次のパラメータを取るSetOutlineBorder メソッドが提供され、セルの範囲に境界線を追加することができます:
- 境界線の種類、BorderType 列挙型から選択される境界線の種類。
- ライン スタイル は CellBorderType 列挙体から選択されます。
- カラー は Color 列挙体から選択されます。
次の例では、範囲にアウトラインボーダーを設定する方法を示しています。
// For complete examples and data files, please go to https://github.com/aspose-cells/Aspose.Cells-for-.NET | |
// The path to the documents directory. | |
string dataDir = RunExamples.GetDataDir(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType); | |
// Create directory if it is not already present. | |
bool IsExists = System.IO.Directory.Exists(dataDir); | |
if (!IsExists) | |
System.IO.Directory.CreateDirectory(dataDir); | |
// Instantiating a Workbook object | |
Workbook workbook = new Workbook(); | |
// Clears the worksheets | |
workbook.Worksheets.Clear(); | |
// Adding a new worksheet to the Workbook object | |
workbook.Worksheets.Add(); | |
// Obtaining the reference of the newly added worksheet by passing its sheet index | |
Worksheet worksheet = workbook.Worksheets[0]; | |
// Accessing the "A1" cell from the worksheet | |
Cell cell = worksheet.Cells["A1"]; | |
// Adding some value to the "A1" cell | |
cell.PutValue("Hello World From Aspose"); | |
// Creating a range of cells starting from "A1" cell to 3rd column in a row | |
Range range = worksheet.Cells.CreateRange(0, 0, 1, 3); | |
// Adding a thick top border with blue line | |
range.SetOutlineBorder(BorderType.TopBorder, CellBorderType.Thick, Color.Blue); | |
// Adding a thick bottom border with blue line | |
range.SetOutlineBorder(BorderType.BottomBorder, CellBorderType.Thick, Color.Blue); | |
// Adding a thick left border with blue line | |
range.SetOutlineBorder(BorderType.LeftBorder, CellBorderType.Thick, Color.Blue); | |
// Adding a thick right border with blue line | |
range.SetOutlineBorder(BorderType.RightBorder, CellBorderType.Thick, Color.Blue); | |
// Saving the Excel file | |
workbook.Save(dataDir + "book1.out.xls"); |
次の例では、範囲内の各セルに境界線を設定する方法を示します。
// For complete examples and data files, please go to https://github.com/aspose-cells/Aspose.Cells-for-.NET | |
// The path to the documents directory. | |
string dataDir = RunExamples.GetDataDir(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType); | |
// Instantiate a new Workbook. | |
Workbook workbook = new Workbook(); | |
// Access the cells in the first worksheet. | |
Cells cells = workbook.Worksheets[0].Cells; | |
// Create a range of cells. | |
Range range = cells.CreateRange("A6", "P216"); | |
// Declare style. | |
Style stl; | |
// Create the style adding to the style collection. | |
stl = workbook.CreateStyle(); | |
// Specify the font settings. | |
stl.Font.Name = "Arial"; | |
stl.Font.IsBold = true; | |
stl.Font.Color = Color.Blue; | |
// Set the borders | |
stl.Borders[BorderType.TopBorder].LineStyle = CellBorderType.Thin; | |
stl.Borders[BorderType.TopBorder].Color = Color.Blue; | |
stl.Borders[BorderType.LeftBorder].LineStyle = CellBorderType.Thin; | |
stl.Borders[BorderType.LeftBorder].Color = Color.Blue; | |
stl.Borders[BorderType.BottomBorder].LineStyle = CellBorderType.Thin; | |
stl.Borders[BorderType.BottomBorder].Color = Color.Blue; | |
stl.Borders[BorderType.RightBorder].LineStyle = CellBorderType.Thin; | |
stl.Borders[BorderType.RightBorder].Color = Color.Blue; | |
// Create StyleFlag object. | |
StyleFlag flg = new StyleFlag(); | |
// Make the corresponding formatting attributes ON. | |
flg.Font = true; | |
flg.Borders = true; | |
// Apply the style with format settings to the range. | |
range.ApplyStyle(stl, flg); | |
// Save the excel file. | |
workbook.Save( dataDir + "output.xls"); | |
名前付き範囲の名前を変更する
Aspose.Cellsを使用して、必要に応じて名前付き範囲の名前を変更できます。名前付き範囲を取得して、Name.Text 属性を使用して名前を変更する方法を次の例で示します。
// For complete examples and data files, please go to https://github.com/aspose-cells/Aspose.Cells-for-.NET | |
// The path to the documents directory. | |
string dataDir = RunExamples.GetDataDir(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType); | |
// Open an existing Excel file that has a (global) named range "TestRange" in it | |
Workbook workbook = new Workbook(dataDir + "book1.xls"); | |
// Get the first worksheet | |
Worksheet sheet = workbook.Worksheets[0]; | |
// Get the Cells of the sheet | |
Cells cells = sheet.Cells; | |
// Get the named range "MyRange" | |
Name name = workbook.Worksheets.Names["TestRange"]; | |
// Rename it | |
name.Text = "NewRange"; | |
// Save the Excel file | |
workbook.Save(dataDir + "RenamingRange.out.xlsx"); |
範囲の合併
Aspose.Cells は範囲の合併に使用する Range.Union メソッドを提供しており、このメソッドは ArrayList オブジェクトを返します。次の例では、範囲の合併方法を示します。
// For complete examples and data files, please go to https://github.com/aspose-cells/Aspose.Cells-for-.NET | |
// The path to the documents directory. | |
string dataDir = RunExamples.GetDataDir(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType); | |
// Instantiate a workbook object. | |
// Open an existing excel file. | |
Workbook workbook = new Workbook(dataDir + "book1.xls"); | |
// Get the named ranges. | |
Range[] ranges = workbook.Worksheets.GetNamedRanges(); | |
// Create a style object. | |
Style style = workbook.CreateStyle(); | |
// Set the shading color with solid pattern type. | |
style.ForegroundColor = Color.Yellow; | |
style.Pattern = BackgroundType.Solid; | |
// Create a styleflag object. | |
StyleFlag flag = new StyleFlag(); | |
// Apply the cellshading. | |
flag.CellShading = true; | |
// Creates an arraylist. | |
ArrayList al = new ArrayList(); | |
// Get the arraylist collection apply the union operation. | |
al = ranges[0].UnionRanges(ranges[1]); | |
// Define a range object. | |
Range rng; | |
int frow, fcol, erow, ecol; | |
for (int i = 0; i < al.Count; i++) | |
{ | |
// Get a range. | |
rng = (Range)al[i]; | |
frow = rng.FirstRow; | |
fcol = rng.FirstColumn; | |
erow = rng.RowCount; | |
ecol = rng.ColumnCount; | |
// Apply the style to the range. | |
rng.ApplyStyle(style, flag); | |
} | |
// Save the excel file. | |
workbook.Save(dataDir + "rngUnion.out.xls"); |
範囲の交差
Aspose.Cells は 2 つの範囲の交差を求めるための Range.Intersect メソッドを提供しており、このメソッドは Range オブジェクトを返します。範囲が他の範囲と交差するかどうかを確認するには、ブール値を返す Range.Intersect メソッドを使用します。次の例では、範囲の交差方法を示します。
// For complete examples and data files, please go to https://github.com/aspose-cells/Aspose.Cells-for-.NET | |
// The path to the documents directory. | |
string dataDir = RunExamples.GetDataDir(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType); | |
// Instantiate a workbook object. | |
// Open an existing excel file. | |
Workbook workbook = new Workbook(dataDir + "book1.xls"); | |
// Get the named ranges. | |
Range[] ranges = workbook.Worksheets.GetNamedRanges(); | |
// Check whether the first range intersect the second range. | |
bool isintersect = ranges[0].IsIntersect(ranges[1]); | |
// Create a style object. | |
Style style = workbook.CreateStyle(); | |
// Set the shading color with solid pattern type. | |
style.ForegroundColor = Color.Yellow; | |
style.Pattern = BackgroundType.Solid; | |
// Create a styleflag object. | |
StyleFlag flag = new StyleFlag(); | |
// Apply the cellshading. | |
flag.CellShading = true; | |
// If first range intersects second range. | |
if (isintersect) | |
{ | |
// Create a range by getting the intersection. | |
Range intersection = ranges[0].Intersect(ranges[1]); | |
// Name the range. | |
intersection.Name = "Intersection"; | |
// Apply the style to the range. | |
intersection.ApplyStyle(style, flag); | |
} | |
// Save the excel file. | |
workbook.Save(dataDir + "rngIntersection.out.xls"); |
名前付き範囲内のセルの結合
Aspose.Cells は範囲内のセルを結合するための Range.Merge() メソッドを提供しています。次の例では、名前付き範囲内の個々のセルを結合する方法を示します。
// For complete examples and data files, please go to https://github.com/aspose-cells/Aspose.Cells-for-.NET | |
// The path to the documents directory. | |
string dataDir = RunExamples.GetDataDir(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType); | |
// Create directory if it is not already present. | |
bool IsExists = System.IO.Directory.Exists(dataDir); | |
if (!IsExists) | |
System.IO.Directory.CreateDirectory(dataDir); | |
// Instantiate a new Workbook. | |
Workbook wb1 = new Workbook(); | |
// Get the first worksheet in the workbook. | |
Worksheet worksheet1 = wb1.Worksheets[0]; | |
// Create a range. | |
Range mrange = worksheet1.Cells.CreateRange("A18", "J18"); | |
// Name the range. | |
mrange.Name = "Details"; | |
// Merge the cells of the range. | |
mrange.Merge(); | |
// Get the range. | |
Range range1 = wb1.Worksheets.GetRangeByName("Details"); | |
// Define a style object. | |
Style style = wb1.CreateStyle(); | |
// Set the alignment. | |
style.HorizontalAlignment = TextAlignmentType.Center; | |
// Create a StyleFlag object. | |
StyleFlag flag = new StyleFlag(); | |
// Make the relative style attribute ON. | |
flag.HorizontalAlignment = true; | |
// Apply the style to the range. | |
range1.ApplyStyle(style, flag); | |
// Input data into range. | |
range1[0, 0].PutValue("Aspose"); | |
// Save the excel file. | |
wb1.Save(dataDir + "mergingrange.out.xls"); |
ネームド レンジの削除
Aspose.Cells は範囲の名前を消去するための NameCollection.RemoveAt() メソッドを提供しています。範囲の内容をクリアするには、Cells.ClearRange() メソッドを使用します。次の例では、名前付き範囲とその内容を削除する方法を示します。
// For complete examples and data files, please go to https://github.com/aspose-cells/Aspose.Cells-for-.NET | |
// The path to the documents directory. | |
string dataDir = RunExamples.GetDataDir(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType); | |
// Create directory if it is not already present. | |
bool IsExists = System.IO.Directory.Exists(dataDir); | |
if (!IsExists) | |
System.IO.Directory.CreateDirectory(dataDir); | |
// Instantiate a new Workbook. | |
Workbook workbook = new Workbook(); | |
// Get all the worksheets in the book. | |
WorksheetCollection worksheets = workbook.Worksheets; | |
// Get the first worksheet in the worksheets collection. | |
Worksheet worksheet = workbook.Worksheets[0]; | |
// Create a range of cells. | |
Range range1 = worksheet.Cells.CreateRange("E12", "I12"); | |
// Name the range. | |
range1.Name = "MyRange"; | |
// Set the outline border to the range. | |
range1.SetOutlineBorder(BorderType.TopBorder, CellBorderType.Medium, Color.FromArgb(0, 0, 128)); | |
range1.SetOutlineBorder(BorderType.BottomBorder, CellBorderType.Medium, Color.FromArgb(0, 0, 128)); | |
range1.SetOutlineBorder(BorderType.LeftBorder, CellBorderType.Medium, Color.FromArgb(0, 0, 128)); | |
range1.SetOutlineBorder(BorderType.RightBorder, CellBorderType.Medium, Color.FromArgb(0, 0, 128)); | |
// Input some data with some formattings into | |
// A few cells in the range. | |
range1[0, 0].PutValue("Test"); | |
range1[0, 4].PutValue("123"); | |
// Create another range of cells. | |
Range range2 = worksheet.Cells.CreateRange("B3", "F3"); | |
// Name the range. | |
range2.Name = "testrange"; | |
// Copy the first range into second range. | |
range2.Copy(range1); | |
// Remove the previous named range (range1) with its contents. | |
worksheet.Cells.ClearRange(11, 4, 11, 8); | |
worksheets.Names.RemoveAt(0); | |
// Save the excel file. | |
workbook.Save(dataDir + "copyranges.out.xls"); |