本文整理汇总了C#中Worksheet.FirstRow方法的典型用法代码示例。如果您正苦于以下问题:C# Worksheet.FirstRow方法的具体用法?C# Worksheet.FirstRow怎么用?C# Worksheet.FirstRow使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Worksheet
的用法示例。
在下文中一共展示了Worksheet.FirstRow方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: ExtractRowsData
///// <summary>
///// Abre un archivo xlsx y extrae la información de una hoja de excel para convertirla
///// en una lista de objetos expandos usando la función
///// ExtractRowsData(data, worksheet, ssTable, cellFormats);
///// </summary>
///// <param name="workSheet"> Índice cero de la columna de Excel. </param>
///// <returns> Una lista con objetos expandos. </returns>
///// <exception cref="System.IO.IOException">Excepción lanzada cuando el archivo de Excel
///// está siendo usado por otro proceso.</exception>
//public static List<ExpandoObject> GetSpreadsheetData(string workSheet, string filePath)
//{
// List<ExpandoObject> data = new List<ExpandoObject>();
// using (SpreadsheetDocument spreadsheetDocument = SpreadsheetDocument.Open(filePath, false))
// {
// IEnumerable<Sheet> sheets = spreadsheetDocument.WorkbookPart.Workbook.Descendants<Sheet>();
// WorksheetPart worksheetPart = (WorksheetPart)spreadsheetDocument.WorkbookPart.GetPartById(sheets.First().Id);
// Worksheet worksheet = worksheetPart.Worksheet;
// SharedStringTablePart sstPart = spreadsheetDocument.WorkbookPart.GetPartsOfType<SharedStringTablePart>().FirstOrDefault();
// SharedStringTable ssTable = null;
// if (sstPart != null)
// ssTable = sstPart.SharedStringTable;
// WorkbookStylesPart workbookStylesPart = spreadsheetDocument.WorkbookPart.GetPartsOfType<WorkbookStylesPart>().First();
// CellFormats cellFormats = (CellFormats)workbookStylesPart.Stylesheet.CellFormats;
// ExtractRowsData(data, worksheet, ssTable, cellFormats);
// }
// return data;
//}
/// <summary>
/// Obtener informacion de una hoja de Excel asumiendo que en la primera fila se nombran las columnas
/// y que el resto de las filas contiene información asociada al nombre de las columnas
/// </summary>
/// <param name="data">La lista de objetos expando que guardará toda la información que se extraiga
/// de la tabla.</param>
/// <param name="worksheet">El nombre de la hoja de Excel.</param>
/// <param name="ssTable">La tabla de cadenas compartidas del archivo xlsx en el cual se encuentra
/// la hoja de Excel de la que se extraerán los datos.</param>
/// <param name="cellFormats">El formato de celdas.</param>
private static void ExtractRowsData(List<ExpandoObject> data, Worksheet worksheet, SharedStringTable ssTable, CellFormats cellFormats)
{
var columnHeaders = worksheet.FirstRow().Descendants<Cell>().Select(c => Convert.ToString(ProcessCellValue(c, ssTable, cellFormats))).ToArray();
var columnHeadersCellReference = worksheet.FirstRow().Descendants<Cell>().Select(c => c.CellReference.InnerText.Replace("1", string.Empty)).ToArray();
var spreadsheetData = worksheet.SkipFirstRow();
int dataRowIndex = 2;
foreach (var dataRow in spreadsheetData)
{
dynamic row = new ExpandoObject();
Cell[] rowCells = dataRow.Descendants<Cell>().ToArray();
for (int i = 0; i < columnHeaders.Length; i++)
{
// Selecciona y agrega la celda correcta al archivo de la fila.
Cell cell = dataRow.Descendants<Cell>().Where(c => c.CellReference == columnHeadersCellReference[i] + dataRow.RowIndex).FirstOrDefault();
if (cell != null)
((IDictionary<String, Object>)row).Add(new KeyValuePair<String, Object>(dataRowIndex + "," + i, ProcessCellValue(cell, ssTable, cellFormats)));
}
data.Add(row);
++dataRowIndex;
}
}