話不多說,直接上示例。
2個文件源碼如下:
1、查詢SQL導出Excel.ktr
<?xml version="1.0" encoding="UTF-8"?><transformation><info><name>查詢SQL導出Excel</name><description /><extended_description /><trans_version /><trans_type>Normal</trans_type><trans_status>0</trans_status><directory>/</directory><parameters></parameters><log><trans-log-table><connection /><schema /><table /><size_limit_lines /><interval /><timeout_days /><field><id>ID_BATCH</id><enabled>Y</enabled><name>ID_BATCH</name></field><field><id>CHANNEL_ID</id><enabled>Y</enabled><name>CHANNEL_ID</name></field><field><id>TRANSNAME</id><enabled>Y</enabled><name>TRANSNAME</name></field><field><id>STATUS</id><enabled>Y</enabled><name>STATUS</name></field><field><id>LINES_READ</id><enabled>Y</enabled><name>LINES_READ</name><subject /></field><field><id>LINES_WRITTEN</id><enabled>Y</enabled><name>LINES_WRITTEN</name><subject /></field><field><id>LINES_UPDATED</id><enabled>Y</enabled><name>LINES_UPDATED</name><subject /></field><field><id>LINES_INPUT</id><enabled>Y</enabled><name>LINES_INPUT</name><subject /></field><field><id>LINES_OUTPUT</id><enabled>Y</enabled><name>LINES_OUTPUT</name><subject /></field><field><id>LINES_REJECTED</id><enabled>Y</enabled><name>LINES_REJECTED</name><subject /></field><field><id>ERRORS</id><enabled>Y</enabled><name>ERRORS</name></field><field><id>STARTDATE</id><enabled>Y</enabled><name>STARTDATE</name></field><field><id>ENDDATE</id><enabled>Y</enabled><name>ENDDATE</name></field><field><id>LOGDATE</id><enabled>Y</enabled><name>LOGDATE</name></field><field><id>DEPDATE</id><enabled>Y</enabled><name>DEPDATE</name></field><field><id>REPLAYDATE</id><enabled>Y</enabled><name>REPLAYDATE</name></field><field><id>LOG_FIELD</id><enabled>Y</enabled><name>LOG_FIELD</name></field><field><id>EXECUTING_SERVER</id><enabled>N</enabled><name>EXECUTING_SERVER</name></field><field><id>EXECUTING_USER</id><enabled>N</enabled><name>EXECUTING_USER</name></field><field><id>CLIENT</id><enabled>N</enabled><name>CLIENT</name></field></trans-log-table><perf-log-table><connection /><schema /><table /><interval /><timeout_days /><field><id>ID_BATCH</id><enabled>Y</enabled><name>ID_BATCH</name></field><field><id>SEQ_NR</id><enabled>Y</enabled><name>SEQ_NR</name></field><field><id>LOGDATE</id><enabled>Y</enabled><name>LOGDATE</name></field><field><id>TRANSNAME</id><enabled>Y</enabled><name>TRANSNAME</name></field><field><id>STEPNAME</id><enabled>Y</enabled><name>STEPNAME</name></field><field><id>STEP_COPY</id><enabled>Y</enabled><name>STEP_COPY</name></field><field><id>LINES_READ</id><enabled>Y</enabled><name>LINES_READ</name></field><field><id>LINES_WRITTEN</id><enabled>Y</enabled><name>LINES_WRITTEN</name></field><field><id>LINES_UPDATED</id><enabled>Y</enabled><name>LINES_UPDATED</name></field><field><id>LINES_INPUT</id><enabled>Y</enabled><name>LINES_INPUT</name></field><field><id>LINES_OUTPUT</id><enabled>Y</enabled><name>LINES_OUTPUT</name></field><field><id>LINES_REJECTED</id><enabled>Y</enabled><name>LINES_REJECTED</name></field><field><id>ERRORS</id><enabled>Y</enabled><name>ERRORS</name></field><field><id>INPUT_BUFFER_ROWS</id><enabled>Y</enabled><name>INPUT_BUFFER_ROWS</name></field><field><id>OUTPUT_BUFFER_ROWS</id><enabled>Y</enabled><name>OUTPUT_BUFFER_ROWS</name></field></perf-log-table><channel-log-table><connection /><schema /><table /><timeout_days /><field><id>ID_BATCH</id><enabled>Y</enabled><name>ID_BATCH</name></field><field><id>CHANNEL_ID</id><enabled>Y</enabled><name>CHANNEL_ID</name></field><field><id>LOG_DATE</id><enabled>Y</enabled><name>LOG_DATE</name></field><field><id>LOGGING_OBJECT_TYPE</id><enabled>Y</enabled><name>LOGGING_OBJECT_TYPE</name></field><field><id>OBJECT_NAME</id><enabled>Y</enabled><name>OBJECT_NAME</name></field><field><id>OBJECT_COPY</id><enabled>Y</enabled><name>OBJECT_COPY</name></field><field><id>REPOSITORY_DIRECTORY</id><enabled>Y</enabled><name>REPOSITORY_DIRECTORY</name></field><field><id>FILENAME</id><enabled>Y</enabled><name>FILENAME</name></field><field><id>OBJECT_ID</id><enabled>Y</enabled><name>OBJECT_ID</name></field><field><id>OBJECT_REVISION</id><enabled>Y</enabled><name>OBJECT_REVISION</name></field><field><id>PARENT_CHANNEL_ID</id><enabled>Y</enabled><name>PARENT_CHANNEL_ID</name></field><field><id>ROOT_CHANNEL_ID</id><enabled>Y</enabled><name>ROOT_CHANNEL_ID</name></field></channel-log-table><step-log-table><connection /><schema /><table /><timeout_days /><field><id>ID_BATCH</id><enabled>Y</enabled><name>ID_BATCH</name></field><field><id>CHANNEL_ID</id><enabled>Y</enabled><name>CHANNEL_ID</name></field><field><id>LOG_DATE</id><enabled>Y</enabled><name>LOG_DATE</name></field><field><id>TRANSNAME</id><enabled>Y</enabled><name>TRANSNAME</name></field><field><id>STEPNAME</id><enabled>Y</enabled><name>STEPNAME</name></field><field><id>STEP_COPY</id><enabled>Y</enabled><name>STEP_COPY</name></field><field><id>LINES_READ</id><enabled>Y</enabled><name>LINES_READ</name></field><field><id>LINES_WRITTEN</id><enabled>Y</enabled><name>LINES_WRITTEN</name></field><field><id>LINES_UPDATED</id><enabled>Y</enabled><name>LINES_UPDATED</name></field><field><id>LINES_INPUT</id><enabled>Y</enabled><name>LINES_INPUT</name></field><field><id>LINES_OUTPUT</id><enabled>Y</enabled><name>LINES_OUTPUT</name></field><field><id>LINES_REJECTED</id><enabled>Y</enabled><name>LINES_REJECTED</name></field><field><id>ERRORS</id><enabled>Y</enabled><name>ERRORS</name></field><field><id>LOG_FIELD</id><enabled>N</enabled><name>LOG_FIELD</name></field></step-log-table><metrics-log-table><connection /><schema /><table /><timeout_days /><field><id>ID_BATCH</id><enabled>Y</enabled><name>ID_BATCH</name></field><field><id>CHANNEL_ID</id><enabled>Y</enabled><name>CHANNEL_ID</name></field><field><id>LOG_DATE</id><enabled>Y</enabled><name>LOG_DATE</name></field><field><id>METRICS_DATE</id><enabled>Y</enabled><name>METRICS_DATE</name></field><field><id>METRICS_CODE</id><enabled>Y</enabled><name>METRICS_CODE</name></field><field><id>METRICS_DESCRIPTION</id><enabled>Y</enabled><name>METRICS_DESCRIPTION</name></field><field><id>METRICS_SUBJECT</id><enabled>Y</enabled><name>METRICS_SUBJECT</name></field><field><id>METRICS_TYPE</id><enabled>Y</enabled><name>METRICS_TYPE</name></field><field><id>METRICS_VALUE</id><enabled>Y</enabled><name>METRICS_VALUE</name></field></metrics-log-table></log><maxdate><connection /><table /><field /><offset>0.0</offset><maxdiff>0.0</maxdiff></maxdate><size_rowset>10000</size_rowset><sleep_time_empty>50</sleep_time_empty><sleep_time_full>50</sleep_time_full><unique_connections>N</unique_connections><feedback_shown>Y</feedback_shown><feedback_size>50000</feedback_size><using_thread_priorities>Y</using_thread_priorities><shared_objects_file /><capture_step_performance>N</capture_step_performance><step_performance_capturing_delay>1000</step_performance_capturing_delay><step_performance_capturing_size_limit>100</step_performance_capturing_size_limit><dependencies></dependencies><partitionschemas></partitionschemas><slaveservers></slaveservers><clusterschemas></clusterschemas><created_user>-</created_user><created_date>2019/01/21 16:56:19.430</created_date><modified_user>-</modified_user><modified_date>2019/01/21 16:56:19.430</modified_date><key_for_session_key>H4sIAAAAAAAAAAMAAAAAAAAAAAA=</key_for_session_key><is_key_private>N</is_key_private></info><notepads></notepads><connection><name>oracle-192.168.20.65</name><server>192.168.20.65</server><type>ORACLE</type><access>Native</access><database>orcl</database><port>1521</port><username>test</username><password>Encrypted 2be98afc86aa7f2e4cb79ce10d882aec3</password><servername /><data_tablespace /><index_tablespace /><attributes><attribute><code>FORCE_IDENTIFIERS_TO_LOWERCASE</code><attribute>N</attribute></attribute><attribute><code>FORCE_IDENTIFIERS_TO_UPPERCASE</code><attribute>N</attribute></attribute><attribute><code>IS_CLUSTERED</code><attribute>N</attribute></attribute><attribute><code>PORT_NUMBER</code><attribute>1521</attribute></attribute><attribute><code>PRESERVE_RESERVED_WORD_CASE</code><attribute>Y</attribute></attribute><attribute><code>QUOTE_ALL_FIELDS</code><attribute>N</attribute></attribute><attribute><code>SUPPORTS_BOOLEAN_DATA_TYPE</code><attribute>Y</attribute></attribute><attribute><code>SUPPORTS_TIMESTAMP_DATA_TYPE</code><attribute>Y</attribute></attribute><attribute><code>USE_POOLING</code><attribute>N</attribute></attribute></attributes></connection><order><hop><from>表輸入1</from><to>數據統計1</to><enabled>Y</enabled></hop><hop><from>表輸入2</from><to>數據統計2</to><enabled>Y</enabled></hop></order><step><name>數據統計1</name><type>TypeExitExcelWriterStep</type><description /><distribute>Y</distribute><custom_distribution /><copies>1</copies><partitioning><method>none</method><schema_name /></partitioning><header>Y</header><footer>N</footer><makeSheetActive>Y</makeSheetActive><rowWritingMethod>overwrite</rowWritingMethod><startingCell>A1</startingCell><appendOmitHeader>N</appendOmitHeader><appendOffset>0</appendOffset><appendEmpty>0</appendEmpty><rowWritingMethod>overwrite</rowWritingMethod><forceFormulaRecalculation>N</forceFormulaRecalculation><leaveExistingStylesUnchanged>N</leaveExistingStylesUnchanged><appendLines>N</appendLines><add_to_result_filenames>Y</add_to_result_filenames><file><name>${Internal.Entry.Current.Directory}${file.separator}export${file.separator}${Internal.Step.Name}-</name><extention>xlsx</extention><do_not_open_newfile_init>N</do_not_open_newfile_init><split>N</split><add_date>N</add_date><add_time>N</add_time><SpecifyFormat>Y</SpecifyFormat><date_time_format>yyyyMMdd'T'HHmmss</date_time_format><sheetname>Sheet1</sheetname><autosizecolums>Y</autosizecolums><stream_data>N</stream_data><protect_sheet>N</protect_sheet><password>Encrypted </password><protected_by /><splitevery>0</splitevery><if_file_exists>new</if_file_exists><if_sheet_exists>new</if_sheet_exists></file><template><enabled>N</enabled><sheet_enabled>N</sheet_enabled><filename>template.xls</filename><sheetname /><hidden>N</hidden></template><fields><field><name>SNAME</name><type>String</type><format /><title /><titleStyleCell /><styleCell /><commentField /><commentAuthorField /><formula>N</formula><hyperlinkField /></field><field><name>SNO</name><type>String</type><format /><title /><titleStyleCell /><styleCell /><commentField /><commentAuthorField /><formula>N</formula><hyperlinkField /></field><field><name>SNO</name><type>String</type><format /><title /><titleStyleCell /><styleCell /><commentField /><commentAuthorField /><formula>N</formula><hyperlinkField /></field><field><name>PRINCIPAL</name><type>String</type><format /><title /><titleStyleCell /><styleCell /><commentField /><commentAuthorField /><formula>N</formula><hyperlinkField /></field><field><name>ADDRESS</name><type>String</type><format /><title /><titleStyleCell /><styleCell /><commentField /><commentAuthorField /><formula>N</formula><hyperlinkField /></field><field><name>COMPANY</name><type>String</type><format /><title /><titleStyleCell /><styleCell /><commentField /><commentAuthorField /><formula>N</formula><hyperlinkField /></field></fields><cluster_schema /><remotesteps><input></input><output></output></remotesteps><GUI><xloc>240</xloc><yloc>80</yloc><draw>Y</draw></GUI></step><step><name>表輸入1</name><type>TableInput</type><description /><distribute>Y</distribute><custom_distribution /><copies>1</copies><partitioning><method>none</method><schema_name /></partitioning><connection>oracle-192.168.20.65</connection><sql>SELECT * FROM shanhy_borrowers t WHERE rownum < 20</sql><limit>0</limit><lookup /><execute_each_row>N</execute_each_row><variables_active>N</variables_active><lazy_conversion_active>N</lazy_conversion_active><cluster_schema /><remotesteps><input></input><output></output></remotesteps><GUI><xloc>96</xloc><yloc>80</yloc><draw>Y</draw></GUI></step><step><name>數據統計2</name><type>TypeExitExcelWriterStep</type><description /><distribute>Y</distribute><custom_distribution /><copies>1</copies><partitioning><method>none</method><schema_name /></partitioning><header>Y</header><footer>N</footer><makeSheetActive>Y</makeSheetActive><rowWritingMethod>overwrite</rowWritingMethod><startingCell>A1</startingCell><appendOmitHeader>N</appendOmitHeader><appendOffset>0</appendOffset><appendEmpty>0</appendEmpty><rowWritingMethod>overwrite</rowWritingMethod><forceFormulaRecalculation>N</forceFormulaRecalculation><leaveExistingStylesUnchanged>N</leaveExistingStylesUnchanged><appendLines>N</appendLines><add_to_result_filenames>Y</add_to_result_filenames><file><name>${Internal.Entry.Current.Directory}${file.separator}export${file.separator}${Internal.Step.Name}-</name><extention>xlsx</extention><do_not_open_newfile_init>N</do_not_open_newfile_init><split>N</split><add_date>N</add_date><add_time>N</add_time><SpecifyFormat>Y</SpecifyFormat><date_time_format>yyyyMMdd'T'HHmmss</date_time_format><sheetname>Sheet1</sheetname><autosizecolums>Y</autosizecolums><stream_data>N</stream_data><protect_sheet>N</protect_sheet><password>Encrypted </password><protected_by /><splitevery>0</splitevery><if_file_exists>new</if_file_exists><if_sheet_exists>new</if_sheet_exists></file><template><enabled>N</enabled><sheet_enabled>N</sheet_enabled><filename>template.xls</filename><sheetname /><hidden>N</hidden></template><fields><field><name>SNAME</name><type>String</type><format /><title /><titleStyleCell /><styleCell /><commentField /><commentAuthorField /><formula>N</formula><hyperlinkField /></field><field><name>SNO</name><type>String</type><format /><title /><titleStyleCell /><styleCell /><commentField /><commentAuthorField /><formula>N</formula><hyperlinkField /></field><field><name>SNO</name><type>String</type><format /><title /><titleStyleCell /><styleCell /><commentField /><commentAuthorField /><formula>N</formula><hyperlinkField /></field><field><name>PRINCIPAL</name><type>String</type><format /><title /><titleStyleCell /><styleCell /><commentField /><commentAuthorField /><formula>N</formula><hyperlinkField /></field><field><name>ADDRESS</name><type>String</type><format /><title /><titleStyleCell /><styleCell /><commentField /><commentAuthorField /><formula>N</formula><hyperlinkField /></field><field><name>COMPANY</name><type>String</type><format /><title /><titleStyleCell /><styleCell /><commentField /><commentAuthorField /><formula>N</formula><hyperlinkField /></field></fields><cluster_schema /><remotesteps><input></input><output></output></remotesteps><GUI><xloc>240</xloc><yloc>176</yloc><draw>Y</draw></GUI></step><step><name>表輸入2</name><type>TableInput</type><description /><distribute>Y</distribute><custom_distribution /><copies>1</copies><partitioning><method>none</method><schema_name /></partitioning><connection>oracle-192.168.20.65</connection><sql>SELECT * FROM shanhy_borrowers t WHERE rownum < 10</sql><limit>0</limit><lookup /><execute_each_row>N</execute_each_row><variables_active>N</variables_active><lazy_conversion_active>N</lazy_conversion_active><cluster_schema /><remotesteps><input></input><output></output></remotesteps><GUI><xloc>96</xloc><yloc>176</yloc><draw>Y</draw></GUI></step><step_error_handling></step_error_handling><slave-step-copy-partition-distribution></slave-step-copy-partition-distribution><slave_transformation>N</slave_transformation>
</transformation>
2、kettle發送郵件統計數據.kjb
<?xml version="1.0" encoding="UTF-8"?><job><name>kettle發送郵件統計數據</name><description /><extended_description /><job_version /><directory>/</directory><created_user>-</created_user><created_date>2019/01/22 10:11:54.345</created_date><modified_user>-</modified_user><modified_date>2019/01/22 10:11:54.345</modified_date><parameters></parameters><slaveservers></slaveservers><job-log-table><connection /><schema /><table /><size_limit_lines /><interval /><timeout_days /><field><id>ID_JOB</id><enabled>Y</enabled><name>ID_JOB</name></field><field><id>CHANNEL_ID</id><enabled>Y</enabled><name>CHANNEL_ID</name></field><field><id>JOBNAME</id><enabled>Y</enabled><name>JOBNAME</name></field><field><id>STATUS</id><enabled>Y</enabled><name>STATUS</name></field><field><id>LINES_READ</id><enabled>Y</enabled><name>LINES_READ</name></field><field><id>LINES_WRITTEN</id><enabled>Y</enabled><name>LINES_WRITTEN</name></field><field><id>LINES_UPDATED</id><enabled>Y</enabled><name>LINES_UPDATED</name></field><field><id>LINES_INPUT</id><enabled>Y</enabled><name>LINES_INPUT</name></field><field><id>LINES_OUTPUT</id><enabled>Y</enabled><name>LINES_OUTPUT</name></field><field><id>LINES_REJECTED</id><enabled>Y</enabled><name>LINES_REJECTED</name></field><field><id>ERRORS</id><enabled>Y</enabled><name>ERRORS</name></field><field><id>STARTDATE</id><enabled>Y</enabled><name>STARTDATE</name></field><field><id>ENDDATE</id><enabled>Y</enabled><name>ENDDATE</name></field><field><id>LOGDATE</id><enabled>Y</enabled><name>LOGDATE</name></field><field><id>DEPDATE</id><enabled>Y</enabled><name>DEPDATE</name></field><field><id>REPLAYDATE</id><enabled>Y</enabled><name>REPLAYDATE</name></field><field><id>LOG_FIELD</id><enabled>Y</enabled><name>LOG_FIELD</name></field><field><id>EXECUTING_SERVER</id><enabled>N</enabled><name>EXECUTING_SERVER</name></field><field><id>EXECUTING_USER</id><enabled>N</enabled><name>EXECUTING_USER</name></field><field><id>START_JOB_ENTRY</id><enabled>N</enabled><name>START_JOB_ENTRY</name></field><field><id>CLIENT</id><enabled>N</enabled><name>CLIENT</name></field></job-log-table><jobentry-log-table><connection /><schema /><table /><timeout_days /><field><id>ID_BATCH</id><enabled>Y</enabled><name>ID_BATCH</name></field><field><id>CHANNEL_ID</id><enabled>Y</enabled><name>CHANNEL_ID</name></field><field><id>LOG_DATE</id><enabled>Y</enabled><name>LOG_DATE</name></field><field><id>JOBNAME</id><enabled>Y</enabled><name>TRANSNAME</name></field><field><id>JOBENTRYNAME</id><enabled>Y</enabled><name>STEPNAME</name></field><field><id>LINES_READ</id><enabled>Y</enabled><name>LINES_READ</name></field><field><id>LINES_WRITTEN</id><enabled>Y</enabled><name>LINES_WRITTEN</name></field><field><id>LINES_UPDATED</id><enabled>Y</enabled><name>LINES_UPDATED</name></field><field><id>LINES_INPUT</id><enabled>Y</enabled><name>LINES_INPUT</name></field><field><id>LINES_OUTPUT</id><enabled>Y</enabled><name>LINES_OUTPUT</name></field><field><id>LINES_REJECTED</id><enabled>Y</enabled><name>LINES_REJECTED</name></field><field><id>ERRORS</id><enabled>Y</enabled><name>ERRORS</name></field><field><id>RESULT</id><enabled>Y</enabled><name>RESULT</name></field><field><id>NR_RESULT_ROWS</id><enabled>Y</enabled><name>NR_RESULT_ROWS</name></field><field><id>NR_RESULT_FILES</id><enabled>Y</enabled><name>NR_RESULT_FILES</name></field><field><id>LOG_FIELD</id><enabled>N</enabled><name>LOG_FIELD</name></field><field><id>COPY_NR</id><enabled>N</enabled><name>COPY_NR</name></field></jobentry-log-table><channel-log-table><connection /><schema /><table /><timeout_days /><field><id>ID_BATCH</id><enabled>Y</enabled><name>ID_BATCH</name></field><field><id>CHANNEL_ID</id><enabled>Y</enabled><name>CHANNEL_ID</name></field><field><id>LOG_DATE</id><enabled>Y</enabled><name>LOG_DATE</name></field><field><id>LOGGING_OBJECT_TYPE</id><enabled>Y</enabled><name>LOGGING_OBJECT_TYPE</name></field><field><id>OBJECT_NAME</id><enabled>Y</enabled><name>OBJECT_NAME</name></field><field><id>OBJECT_COPY</id><enabled>Y</enabled><name>OBJECT_COPY</name></field><field><id>REPOSITORY_DIRECTORY</id><enabled>Y</enabled><name>REPOSITORY_DIRECTORY</name></field><field><id>FILENAME</id><enabled>Y</enabled><name>FILENAME</name></field><field><id>OBJECT_ID</id><enabled>Y</enabled><name>OBJECT_ID</name></field><field><id>OBJECT_REVISION</id><enabled>Y</enabled><name>OBJECT_REVISION</name></field><field><id>PARENT_CHANNEL_ID</id><enabled>Y</enabled><name>PARENT_CHANNEL_ID</name></field><field><id>ROOT_CHANNEL_ID</id><enabled>Y</enabled><name>ROOT_CHANNEL_ID</name></field></channel-log-table><pass_batchid>N</pass_batchid><shared_objects_file /><entries><entry><name>START</name><description /><type>SPECIAL</type><start>Y</start><dummy>N</dummy><repeat>N</repeat><schedulerType>0</schedulerType><intervalSeconds>0</intervalSeconds><intervalMinutes>60</intervalMinutes><hour>12</hour><minutes>0</minutes><weekDay>1</weekDay><DayOfMonth>1</DayOfMonth><parallel>N</parallel><draw>Y</draw><nr>0</nr><xloc>48</xloc><yloc>48</yloc></entry><entry><name>轉換 - 查詢SQL導出Excel</name><description /><type>TRANS</type><specification_method>filename</specification_method><trans_object_id /><filename>${Internal.Entry.Current.Directory}/查詢SQL導出Excel.ktr</filename><transname /><arg_from_previous>N</arg_from_previous><params_from_previous>N</params_from_previous><exec_per_row>N</exec_per_row><clear_rows>N</clear_rows><clear_files>N</clear_files><set_logfile>N</set_logfile><logfile /><logext /><add_date>N</add_date><add_time>N</add_time><loglevel>Basic</loglevel><cluster>N</cluster><slave_server_name /><set_append_logfile>N</set_append_logfile><wait_until_finished>Y</wait_until_finished><follow_abort_remote>N</follow_abort_remote><create_parent_folder>N</create_parent_folder><logging_remote_work>N</logging_remote_work><run_configuration>Pentaho local</run_configuration><parameters><pass_all_parameters>Y</pass_all_parameters></parameters><parallel>N</parallel><draw>Y</draw><nr>0</nr><xloc>272</xloc><yloc>176</yloc></entry><entry><name>添加文件到結果文件中</name><description /><type>ADD_RESULT_FILENAMES</type><arg_from_previous>Y</arg_from_previous><include_subfolders>N</include_subfolders><delete_all_before>N</delete_all_before><fields></fields><parallel>N</parallel><draw>Y</draw><nr>0</nr><xloc>48</xloc><yloc>304</yloc></entry><entry><name>創建目錄_export</name><description /><type>CREATE_FOLDER</type><foldername>${Internal.Entry.Current.Directory}${file.separator}export</foldername><fail_of_folder_exists>N</fail_of_folder_exists><parallel>N</parallel><draw>Y</draw><nr>0</nr><xloc>192</xloc><yloc>48</yloc></entry><entry><name>創建目錄_export-bak</name><description /><type>CREATE_FOLDER</type><foldername>${Internal.Entry.Current.Directory}${file.separator}export-bak</foldername><fail_of_folder_exists>N</fail_of_folder_exists><parallel>N</parallel><draw>Y</draw><nr>0</nr><xloc>384</xloc><yloc>48</yloc></entry><entry><name>備份文件</name><description /><type>MOVE_FILES</type><move_empty_folders>N</move_empty_folders><arg_from_previous>N</arg_from_previous><include_subfolders>N</include_subfolders><add_result_filesname>N</add_result_filesname><destination_is_a_file>N</destination_is_a_file><create_destination_folder>N</create_destination_folder><add_date>N</add_date><add_time>N</add_time><SpecifyFormat>N</SpecifyFormat><date_time_format /><nr_errors_less_than>10</nr_errors_less_than><success_condition>success_if_no_errors</success_condition><AddDateBeforeExtension>N</AddDateBeforeExtension><DoNotKeepFolderStructure>N</DoNotKeepFolderStructure><iffileexists>do_nothing</iffileexists><destinationFolder /><ifmovedfileexists>do_nothing</ifmovedfileexists><moved_date_time_format /><create_move_to_folder>N</create_move_to_folder><add_moved_date>N</add_moved_date><add_moved_time>N</add_moved_time><SpecifyMoveFormat>N</SpecifyMoveFormat><AddMovedDateBeforeExtension>N</AddMovedDateBeforeExtension><simulate>N</simulate><fields><field><source_filefolder>${Internal.Entry.Current.Directory}${file.separator}export</source_filefolder><destination_filefolder>${Internal.Entry.Current.Directory}${file.separator}export-bak</destination_filefolder><wildcard /></field></fields><parallel>N</parallel><draw>Y</draw><nr>0</nr><xloc>736</xloc><yloc>48</yloc></entry><entry><name>發送郵件</name><description /><type>MAIL</type><server>smtp.exmail.qq.com</server><port>465</port><destination>365384722@qq.com</destination><destinationCc /><destinationBCc /><replyto>service@shanhy.com</replyto><replytoname>付融寶數據統計</replytoname><subject>數據統計-${date_format}</subject><include_date>N</include_date><contact_person /><contact_phone /><comment>
查詢統計的數據,詳見附件。
</comment><include_files>Y</include_files><zip_files>N</zip_files><zip_name /><use_auth>Y</use_auth><use_secure_auth>Y</use_secure_auth><auth_user>service@shanhy.com</auth_user><auth_password>Encrypted 794d697a73fdd8c4bb5ad081a28d1c9e49eaab95e8</auth_password><only_comment>Y</only_comment><use_HTML>N</use_HTML><use_Priority>N</use_Priority><encoding>UTF-8</encoding><priority>normal</priority><importance>normal</importance><sensitivity>normal</sensitivity><secureconnectiontype>SSL</secureconnectiontype><replyToAddresses /><filetypes><filetype>GENERAL</filetype></filetypes><embeddedimages></embeddedimages><parallel>N</parallel><draw>Y</draw><nr>0</nr><xloc>384</xloc><yloc>304</yloc></entry><entry><name>成功</name><description /><type>SUCCESS</type><parallel>N</parallel><draw>Y</draw><nr>0</nr><xloc>736</xloc><yloc>304</yloc></entry><entry><name>創建目錄_email-attach</name><description /><type>CREATE_FOLDER</type><foldername>${Internal.Entry.Current.Directory}${file.separator}email-attach</foldername><fail_of_folder_exists>N</fail_of_folder_exists><parallel>N</parallel><draw>Y</draw><nr>0</nr><xloc>560</xloc><yloc>48</yloc></entry><entry><name>使用JS設置變量</name><description /><type>EVAL</type><script>//以下是格式化日期的方法,跟主流程無關,目的是為了格式化當前日期
Date.prototype.format = function(fmt) { var o = { "M+" : this.getMonth()+1, //月份 "d+" : this.getDate(), //日 "h+" : this.getHours(), //小時 "m+" : this.getMinutes(), //分 "s+" : this.getSeconds(), //秒 "q+" : Math.floor((this.getMonth()+3)/3), //季度 "S" : this.getMilliseconds() //毫秒 }; if(/(y+)/.test(fmt)) {fmt=fmt.replace(RegExp.$1, (this.getFullYear()+"").substr(4 - RegExp.$1.length)); }for(var k in o) {if(new RegExp("("+ k +")").test(fmt)){fmt = fmt.replace(RegExp.$1, (RegExp.$1.length==1) ? (o[k]) : (("00"+ o[k]).substr((""+ o[k]).length)));}}return fmt;
} // 格式化日期
var date_format = new Date().format("yyyyMMdd");// 設置變量
parent_job.setVariable("date_format",date_format);// 返回結果為 true 繼續執行下一個步驟
true;</script><parallel>N</parallel><draw>Y</draw><nr>0</nr><xloc>480</xloc><yloc>176</yloc></entry></entries><hops><hop><from>START</from><to>創建目錄_export</to><from_nr>0</from_nr><to_nr>0</to_nr><enabled>Y</enabled><evaluation>Y</evaluation><unconditional>Y</unconditional></hop><hop><from>創建目錄_export</from><to>創建目錄_export-bak</to><from_nr>0</from_nr><to_nr>0</to_nr><enabled>Y</enabled><evaluation>Y</evaluation><unconditional>N</unconditional></hop><hop><from>發送郵件</from><to>成功</to><from_nr>0</from_nr><to_nr>0</to_nr><enabled>Y</enabled><evaluation>Y</evaluation><unconditional>N</unconditional></hop><hop><from>創建目錄_export-bak</from><to>創建目錄_email-attach</to><from_nr>0</from_nr><to_nr>0</to_nr><enabled>Y</enabled><evaluation>Y</evaluation><unconditional>N</unconditional></hop><hop><from>創建目錄_email-attach</from><to>備份文件</to><from_nr>0</from_nr><to_nr>0</to_nr><enabled>Y</enabled><evaluation>Y</evaluation><unconditional>N</unconditional></hop><hop><from>添加文件到結果文件中</from><to>發送郵件</to><from_nr>0</from_nr><to_nr>0</to_nr><enabled>Y</enabled><evaluation>Y</evaluation><unconditional>N</unconditional></hop><hop><from>備份文件</from><to>使用JS設置變量</to><from_nr>0</from_nr><to_nr>0</to_nr><enabled>Y</enabled><evaluation>Y</evaluation><unconditional>N</unconditional></hop><hop><from>使用JS設置變量</from><to>轉換 - 查詢SQL導出Excel</to><from_nr>0</from_nr><to_nr>0</to_nr><enabled>Y</enabled><evaluation>Y</evaluation><unconditional>N</unconditional></hop><hop><from>轉換 - 查詢SQL導出Excel</from><to>添加文件到結果文件中</to><from_nr>0</from_nr><to_nr>0</to_nr><enabled>Y</enabled><evaluation>Y</evaluation><unconditional>N</unconditional></hop></hops><notepads></notepads><attributes><group><name>METASTORE.pentaho</name><attribute><key>Default Run Configuration</key><value>{"namespace":"pentaho","id":"Default Run Configuration","name":"Default Run Configuration","description":"Defines a default run configuration","metaStoreName":null}</value></attribute></group><group><name>{"_":"Embedded MetaStore Elements","namespace":"pentaho","type":"Default Run Configuration"}</name><attribute><key>Pentaho local</key><value>{"children":[{"children":[],"id":"server","value":null},{"children":[],"id":"clustered","value":"N"},{"children":[],"id":"name","value":"Pentaho local"},{"children":[],"id":"description","value":null},{"children":[],"id":"readOnly","value":"Y"},{"children":[],"id":"sendResources","value":"N"},{"children":[],"id":"logRemoteExecutionLocally","value":"N"},{"children":[],"id":"remote","value":"N"},{"children":[],"id":"local","value":"Y"},{"children":[],"id":"showTransformations","value":"N"}],"id":"Pentaho local","value":null,"name":"Pentaho local","owner":null,"ownerPermissionsList":[]}</value></attribute></group></attributes>
</job>
將如上代碼保存問對應的2個文件,然后使用 kettle 打開這2個文件,即可查看。
總結
以上是生活随笔為你收集整理的Kettle 将查询SQL导出的 Excel 通过邮件发送的全部內容,希望文章能夠幫你解決所遇到的問題。
如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。