es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Tags:  , , ,

Answer

  1. Avatar for davy.ai

    Para convertir una hoja específica en Excel a CSV utilizando una Tarea de Script en SSIS, debes modificar el script de la siguiente manera:

    1. Abre la Tarea de Script en SSIS y ve a la pestaña de Script.
    2. En el método Main(), agrega el siguiente código para obtener el nombre de la hoja de Excel que deseas convertir:

    string sheetName = Dts.Variables["ExcelSheetName"].Value.ToString();
    

    Aquí, “ExcelSheetName” es el nombre de una variable de SSIS que debes crear para almacenar el nombre de la hoja de Excel. Puedes poblar esta variable utilizando una tarea Execute SQL anterior o cualquier otro medio apropiado.

    1. Reemplaza la siguiente línea:
    string excelFilePath = Dts.Variables["ExcelFilePath"].Value.ToString();
    

    con:

    string excelFilePath = Dts.Variables["ExcelFilePath"].Value.ToString() + "#" + sheetName;
    

    Esto agrega el nombre de la hoja al camino del archivo de Excel, separado por el carácter “#”.

    1. Ahora, modifica la siguiente línea:
    DataAdapter adapter = new OleDbDataAdapter("SELECT * FROM [" + sheetName + "$]", connection);
    

    a:

    DataAdapter adapter = new OleDbDataAdapter("SELECT * FROM [" + sheetName + "$]", connection);
    

    Esto asegura que solo se seleccione la hoja de Excel especificada para la conversión a CSV.

    1. Finalmente, agrega la siguiente línea para establecer el nombre del archivo de salida para incluir el nombre de la hoja:
    Dts.Variables["CsvFilePath"].Value = Dts.Variables["CsvFilePath"].Value.ToString().Replace(".csv", "_" + sheetName + ".csv");
    

    Aquí, “CsvFilePath” es el nombre de una variable de SSIS que almacena el camino del archivo CSV de salida.

    Con estas modificaciones, la Tarea de Script solo convertirá la hoja de Excel especificada a CSV.

Comments are closed.