You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
191 lines
6.4 KiB
C#
191 lines
6.4 KiB
C#
9 months ago
|
namespace com.azkoss.excellite
|
||
|
{
|
||
|
using System;
|
||
|
|
||
|
///<summary>
|
||
|
///Excel row contains row options and cell range with row cells.
|
||
|
///</summary>
|
||
|
///<seealso cref="com.azkoss.excellite.ExcelColumn" />
|
||
|
public sealed class ExcelRow : ExcelColumnRowBase
|
||
|
{
|
||
|
// Methods
|
||
|
internal ExcelRow(ExcelRowCollection parent, ExcelRow sourceRow) : base(parent, sourceRow)
|
||
|
{
|
||
|
this.height = 0xff;
|
||
|
this.height = sourceRow.height;
|
||
|
this.cellCollection = new ExcelCellCollection(parent.Parent, sourceRow.cellCollection);
|
||
|
}
|
||
|
|
||
|
internal ExcelRow(ExcelRowCollection parent, int index) : base(parent, index)
|
||
|
{
|
||
|
this.height = 0xff;
|
||
|
this.cellCollection = new ExcelCellCollection(parent.Parent);
|
||
|
}
|
||
|
|
||
|
///<summary>
|
||
|
///Deletes this row from the worksheet.
|
||
|
///</summary>
|
||
|
public void Delete()
|
||
|
{
|
||
|
((ExcelRowCollection) base.Parent).DeleteInternal(base.Index);
|
||
|
}
|
||
|
|
||
|
///<summary>
|
||
|
///Inserts specified number of copied rows before the current row.
|
||
|
///</summary>
|
||
|
///<param name="rowCount">Number of rows to insert.</param>
|
||
|
///<param name="sourceRow">Source row to copy.</param>
|
||
|
public void InsertCopy(int rowCount, ExcelRow sourceRow)
|
||
|
{
|
||
|
((ExcelRowCollection) base.Parent).InsertInternal(base.Index, rowCount, sourceRow);
|
||
|
}
|
||
|
|
||
|
///<summary>
|
||
|
///Inserts specified number of empty rows before the current row.
|
||
|
///</summary>
|
||
|
///<param name="rowCount">Number of rows to insert.</param>
|
||
|
public void InsertEmpty(int rowCount)
|
||
|
{
|
||
|
((ExcelRowCollection) base.Parent).InsertInternal(base.Index, rowCount, null);
|
||
|
}
|
||
|
|
||
|
|
||
|
// Properties
|
||
|
///<summary>
|
||
|
///Gets only currently allocated cells for this row.
|
||
|
///</summary>
|
||
|
///<remarks>
|
||
|
///<p>Use this collection if you are reading entire Excel file (you don't know exact position of
|
||
|
///cells with data). If writing values, using <see cref="com.azkoss.excellite.ExcelRow.Cells">Cells</see>
|
||
|
///property is recommended.</p>
|
||
|
///<p>This collection contains only allocated cells so it is faster as you avoid
|
||
|
///checking every single cell in a row. You still need to check if a specific cell contains
|
||
|
///any value (it can be empty).</p>
|
||
|
///</remarks>
|
||
|
///<example> Following code reads entire XLS file and displays all cells containing any data.
|
||
|
///Data types are also displayed.
|
||
|
///<code lang="Visual Basic">
|
||
|
///Dim ef As ExcelFile = New ExcelFile("..\TestWorkbook.xls")
|
||
|
///Dim sheet As ExcelWorksheet
|
||
|
///Dim row As ExcelRow
|
||
|
///Dim cell As ExcelCell
|
||
|
///
|
||
|
///For Each sheet In ef.Worksheets
|
||
|
///Console.WriteLine("--------- {0} ---------", sheet.Name)
|
||
|
///
|
||
|
///For Each row In sheet.Rows
|
||
|
///For Each cell In row.AllocatedCells
|
||
|
///If Not cell.Value Is Nothing Then
|
||
|
///Console.Write("{0}({1})", cell.Value, cell.Value.GetType().Name)
|
||
|
///End If
|
||
|
///
|
||
|
///Console.Write(vbTab)
|
||
|
///Next
|
||
|
///
|
||
|
///Console.WriteLine()
|
||
|
///Next
|
||
|
///Next
|
||
|
///</code>
|
||
|
///<code lang="C#">
|
||
|
///ExcelFile ef = new ExcelFile("..\\..\\TestWorkbook.xls");
|
||
|
///
|
||
|
///foreach(ExcelWorksheet sheet in ef.Worksheets)
|
||
|
///{
|
||
|
///Console.WriteLine("--------- {0} ---------", sheet.Name);
|
||
|
///
|
||
|
///foreach(ExcelRow row in sheet.Rows)
|
||
|
///{
|
||
|
///foreach(ExcelCell cell in row.AllocatedCells)
|
||
|
///{
|
||
|
///if(cell.Value != null)
|
||
|
///Console.Write("{0}({1})", cell.Value, cell.Value.GetType().Name);
|
||
|
///
|
||
|
///Console.Write("\t");
|
||
|
///}
|
||
|
///
|
||
|
///Console.WriteLine();
|
||
|
///}
|
||
|
///}
|
||
|
///</code>
|
||
|
///</example>
|
||
|
///<seealso cref="com.azkoss.excellite.ExcelRow.Cells" />
|
||
|
///<seealso cref="com.azkoss.excellite.ExcelCell" />
|
||
|
public ExcelCellCollection AllocatedCells
|
||
|
{
|
||
|
get
|
||
|
{
|
||
|
return this.cellCollection;
|
||
|
}
|
||
|
}
|
||
|
|
||
|
///<summary>
|
||
|
///Gets cell range with row cells.
|
||
|
///</summary>
|
||
|
///<example> Look at following code for cell referencing examples:
|
||
|
///<code lang="Visual Basic">
|
||
|
///Dim ws As ExcelWorksheet = excelFile.Worksheets.ActiveWorksheet
|
||
|
///
|
||
|
///ws.Cells("B2").Value = "Cell B2."
|
||
|
///ws.Cells(6, 0).Value = "Cell in row 7 and column A."
|
||
|
///
|
||
|
///ws.Rows(2).Cells(0).Value = "Cell in row 3 and column A."
|
||
|
///ws.Rows("4").Cells("B").Value = "Cell in row 4 and column B."
|
||
|
///
|
||
|
///ws.Columns(2).Cells(4).Value = "Cell in column C and row 5."
|
||
|
///ws.Columns("AA").Cells("6").Value = "Cell in AA column and row 6."
|
||
|
///</code>
|
||
|
///<code lang="C#">
|
||
|
///ExcelWorksheet ws = excelFile.Worksheets.ActiveWorksheet;
|
||
|
///
|
||
|
///ws.Cells["B2"].Value = "Cell B2.";
|
||
|
///ws.Cells[6,0].Value = "Cell in row 7 and column A.";
|
||
|
///
|
||
|
///ws.Rows[2].Cells[0].Value = "Cell in row 3 and column A.";
|
||
|
///ws.Rows["4"].Cells["B"].Value = "Cell in row 4 and column B.";
|
||
|
///
|
||
|
///ws.Columns[2].Cells[4].Value = "Cell in column C and row 5.";
|
||
|
///ws.Columns["AA"].Cells["6"].Value = "Cell in AA column and row 6.";
|
||
|
///</code>
|
||
|
///</example>
|
||
|
///<seealso cref="com.azkoss.excellite.ExcelRow.AllocatedCells" />
|
||
|
///<seealso cref="com.azkoss.excellite.ExcelCell" />
|
||
|
public CellRange Cells
|
||
|
{
|
||
|
get
|
||
|
{
|
||
|
if (this.cells == null)
|
||
|
{
|
||
|
this.cells = new CellRange(base.Parent.Parent, base.Index, 0, base.Index, 0xff);
|
||
|
}
|
||
|
return this.cells;
|
||
|
}
|
||
|
}
|
||
|
|
||
|
///<summary>
|
||
|
///Gets or sets row height.
|
||
|
///</summary>
|
||
|
///<remarks>
|
||
|
///Unit is twip (1/20th of a point).
|
||
|
///</remarks>
|
||
|
public int Height
|
||
|
{
|
||
|
get
|
||
|
{
|
||
|
return this.height;
|
||
|
}
|
||
|
set
|
||
|
{
|
||
|
this.height = value;
|
||
|
}
|
||
|
}
|
||
|
|
||
|
|
||
|
// Fields
|
||
|
private ExcelCellCollection cellCollection;
|
||
|
private CellRange cells;
|
||
|
internal const int DefaultRowHeight = 0xff;
|
||
|
private int height;
|
||
|
}
|
||
|
}
|
||
|
|