namespace WorkflowActivity.Scripting.scExcel { using System; using LFSO90Lib; using System.Data; using System.Text; using System.ComponentModel; using System.Data.SqlClient; using System.Collections.Generic; // Librerias using ClosedXML.Excel; public class scExcel : SDKScriptClass90 { // Constantes private const int MAX_FILAS_EXCEL_2007 = 16384; private const string NOMBRE_HOJA_EXCEL = "Datos"; private const int MAX_COLUMNAS_EXCEL_2007 = 1048576; private const string ARCHIVO_EXCEL = "C:\\WorkFlowNet\\Data.xlsx"; // Execute protected override void Execute() { LecturaExcelLibro(); } // Excel private void LecturaExcelLibro() { string dataExcel = ""; int totalHojasLibro = 0; try { var libro = new XLWorkbook(ARCHIVO_EXCEL); totalHojasLibro = libro.Worksheets.Count; if (totalHojasLibro > 0) { string nombreHoja = ""; bool hojaEncontrada = false; int numeroHojaEncontrada = 0; for (int numeroHoja = 1; numeroHoja <= totalHojasLibro; numeroHoja++) { nombreHoja = libro.Worksheet(numeroHoja).Name.Trim(); if (nombreHoja == NOMBRE_HOJA_EXCEL) { hojaEncontrada = true; numeroHojaEncontrada = numeroHoja; break; } } if (hojaEncontrada == true) { for(int numeroFila = 1 ; numeroFila <= MAX_FILAS_EXCEL_2007; numeroFila++) { if (libro.Worksheet(numeroHojaEncontrada).Cell(numeroFila, 1).Value.ToString().Trim() != "") { string datoFila = ""; for (int numeroColumna = 1; numeroColumna <= MAX_COLUMNAS_EXCEL_2007; numeroColumna++) { if (libro.Worksheet(numeroHojaEncontrada).Cell(numeroFila, numeroColumna).Value.ToString().Trim() != "") { datoFila = datoFila + libro.Worksheet(numeroHojaEncontrada).Cell(numeroFila, numeroColumna).Value.ToString().Trim() + "_"; } else { break; } } if (datoFila[datoFila.Length - 1].ToString().Trim() == "_") { datoFila = datoFila.Substring(0, datoFila.Length - 1); } dataExcel= dataExcel + datoFila + "|"; } else { break; } } if (dataExcel[dataExcel.Length-1].ToString().Trim() == "|") { dataExcel = dataExcel.Substring(0, dataExcel.Length - 1); } SetToken("%ErrorExcel", "NO"); SetToken("%DataExcel",dataExcel); } else { SetToken("%ErrorExcel", "SI1"); } } } catch { SetToken("%ErrorExcel", "SI2"); } } } }