#! #! #! #! #! #! #! #! #! #! #! #! " xlsx_protect_sheet_password " " xlsx_protect_sheet_permissions " ""#!DEFLINE_ATTRS="true"#!EXPOSABLE_ATTRS="fme_text_size number(width,xlsx_col_props) xlsx_raster_height number(width,xlsx_col_props) xlsx_raster_scale_factor number(width,xlsx_col_props) xlsx_raster_width number(width,xlsx_col_props) fme_db_operation string(width,xlsx_col_props) fme_sweep_angle number(width,xlsx_col_props) fme_rotation number(width,xlsx_col_props) fme_secondary_axis number(width,xlsx_col_props) fme_primary_axis number(width,xlsx_col_props) fme_color string(50) fme_geometry string(50) xlsx_row_formatting string(width,xlsx_col_props) fme_dataset string(50) fme_fill_color string(50) fme_basename string(50) xlsx_row_id number(width,xlsx_col_props) fme_type string(50) xlsx_col_id number(width,xlsx_col_props) fme_start_angle number(width,xlsx_col_props) fme_feature_type string(50) fme_text_string string(50)"#!DEFLINE_PARMS=""GUI OPTIONAL NAMEDGROUP xlsx_layer_group xlsx_table_writer_mode%xlsx_field_names_out%xlsx_names_are_positions%xlsx_row_id_column%xlsx_truncate_group%xlsx_table_group%xlsx_rowcolumn_group%xlsx_protect_sheet%xlsx_advanced_group Sheet Settings" "" "GUI OPTIONAL DISCLOSUREGROUP xlsx_truncate_group xlsx_row_id%xlsx_drop_sheet%xlsx_trunc_sheet Drop/Truncate" "" "GUI OPTIONAL DISCLOSUREGROUP xlsx_rowcolumn_group xlsx_start_col%xlsx_start_row%xlsx_offset_col%xlsx_offset_row Start Position" "" "GUI ACTIVEDISCLOSUREGROUP xlsx_protect_sheet xlsx_protect_sheet_password%xlsx_protect_sheet_level%xlsx_protect_sheet_permissions Protect Sheet" NO "GUI OPTIONAL DISCLOSUREGROUP xlsx_advanced_group xlsx_sheet_order%xlsx_freeze_end_row%xlsx_raster_type Advanced" "" "GUI CHOICE xlsx_drop_sheet Yes%No Drop Existing Sheet/Named Range:" No "GUI CHOICE xlsx_trunc_sheet Yes%No Truncate Existing Sheet/Named Range:" No "GUI OPTIONAL RANGE_SLIDER xlsx_sheet_order 1%MAX Sheet Order (1 - n):" "" "GUI OPTIONAL RANGE_SLIDER xlsx_freeze_end_row 1%MAX Freeze First Row(s) (1 - n):" "" "GUI CHOICE xlsx_field_names_out Yes%No Output Field Names:" Yes "GUI CHOICE xlsx_names_are_positions Yes%No Use Attribute Names As Column Positions:" No "GUI OPTIONAL TEXT xlsx_start_col Named Range Start Column:" "" "GUI OPTIONAL INTEGER xlsx_start_row Named Range Start Row:" "" "GUI OPTIONAL TEXT xlsx_offset_col Start Column:" "" "GUI OPTIONAL INTEGER xlsx_offset_row Start Row:" "" "GUI CHOICE xlsx_raster_type BMP%JPEG%PNG Raster Format:" PNG "GUI OPTIONAL PASSWORD_ENCODED xlsx_protect_sheet_password Password:" "GUI ACTIVECHOICE_LOOKUP xlsx_protect_sheet_level Select Only Permissions,PROT_DEFAULT,xlsx_protect_sheet_permissions%View Only Permissions,PROT_ALL,xlsx_protect_sheet_permissions%Specific Permissions Protection Level:" "GUI OPTIONAL LOOKUP_LISTBOX xlsx_protect_sheet_permissions Select locked cells,PROT_SEL_LOCKED_CELLS%Select unlocked cells,PROT_SEL_UNLOCKED_CELLS%Format cells,PROT_FORMAT_CELLS%Format columns,PROT_FORMAT_COLUMNS%Format rows,PROT_FORMAT_ROWS%Insert columns,PROT_INSERT_COLUMNS%Insert rows,PROT_INSERT_ROWS%Add hyperlinks to unlocked cells,PROT_INSERT_HYPERLINKS%Delete unlocked columns,PROT_DELETE_COLUMNS%Delete unlocked rows,PROT_DELETE_ROWS%Sort unlocked cells/rows/columns\,PROT_SORT%Use Autofilter on unlocked cells,PROT_AUTOFILTER%Use PivotTable & PivotChart on unlocked cells,PROT_PIVOTTABLES%Edit unlocked objects,PROT_OBJECTS%Edit unprotected scenarios,PROT_SCENARIOS Specific Permissions:" "GUI ACTIVECHOICE xlsx_table_writer_mode Insert,+xlsx_row_id_column+%Update,+xlsx_row_id_column+xlsx_row_id%Delete,+xlsx_row_id_column+xlsx_row_id Writer Mode:" Insert "GUI OPTIONAL ATTR xlsx_row_id_column ALLOW_NEW Row Number Attribute:" "" "#!ATTR_INDEX_TYPES=""#!ATTR_NAME_INVALID_CHARS="\\"*{}$"#!SUPPORTS_FEATURE_TYPE_FANOUT="true"#!ENABLED="true"#!DYNAMIC_FEATURE_TYPES_LIST_ON_MERGE="true"#!DATASET_TYPE="FILE"#!GENERATE_FME_BUILD_NUM="18528"#!COORDSYS=""#!FANOUT_EXPRESSION=""#!FANOUT_GROUP="NO"#!>#! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #!

Send the "first row" out to the output -- all the attrs have the right name

"#!POSITION="1475.5423391733912 -93.382073820738185"#!TOP_LEFT="1475.5423391733912 -93.382073820738185"#!BOTTOM_RIGHT="2496.5423391733912 -92.382073820738185"#!BOUNDING_RECT="1475.5423391733912 -93.382073820738185 1021 -1"#!ORDER="500000000000073"#!FOLLOW_ANCHOR="true"#!INFO_NODE="false"#!COLOUR="1,1,0.78431372549019607,0.19607843137254902"#!SIZE_POLICY="10"#!ANCHORED_NODE="25"#!/>#!

Rename the "00" suffixed attrs to strip the 00.THen th e second row is ready to write.

"#!POSITION="2637.0339252090184 -450.62715627156263"#!TOP_LEFT="2637.0339252090184 -450.62715627156263"#!BOTTOM_RIGHT="3201.7951128208947 -449.62715627156263"#!BOUNDING_RECT="2637.0339252090184 -450.62715627156263 564.76118761187627 -1"#!ORDER="500000000000074"#!FOLLOW_ANCHOR="true"#!INFO_NODE="false"#!COLOUR="1,1,0.78431372549019607,0.19607843137254902"#!SIZE_POLICY="10"#!ANCHORED_NODE="27"#!/>#!

Check if we have 00 suffixed attrs to write

"#!POSITION="1571.516215162151 -683.63132342321978"#!TOP_LEFT="1571.516215162151 -683.63132342321978"#!BOTTOM_RIGHT="2059.0210902109011 -682.63132342321978"#!BOUNDING_RECT="1571.516215162151 -683.63132342321978 487.50487504875036 -1"#!ORDER="500000000000075"#!FOLLOW_ANCHOR="true"#!INFO_NODE="false"#!COLOUR="1,1,0.78431372549019607,0.19607843137254902"#!SIZE_POLICY="10"#!ANCHORED_NODE="7"#!/>#!

Check if we have 01 suffixed attrs to write

"#!POSITION="1619.2617033695967 -1222.8861288612884"#!TOP_LEFT="1619.2617033695967 -1222.8861288612884"#!BOTTOM_RIGHT="2106.7665784183473 -1221.8861288612884"#!BOUNDING_RECT="1619.2617033695967 -1222.8861288612884 487.50487504875036 -1"#!ORDER="500000000000075"#!FOLLOW_ANCHOR="true"#!INFO_NODE="false"#!COLOUR="1,1,0.78431372549019607,0.19607843137254902"#!SIZE_POLICY="10"#!ANCHORED_NODE="32"#!/>#!

Rename the "01" suffixed attrs to strip the 01.THen th e second row is ready to write.

"#!POSITION="2552.6481351011171 -939.50957219746783"#!TOP_LEFT="2552.6481351011171 -939.50957219746783"#!BOTTOM_RIGHT="3117.4093227129933 -938.50957219746783"#!BOUNDING_RECT="2552.6481351011171 -939.50957219746783 564.76118761187627 -1"#!ORDER="500000000000074"#!FOLLOW_ANCHOR="true"#!INFO_NODE="false"#!COLOUR="1,1,0.78431372549019607,0.19607843137254902"#!SIZE_POLICY="10"#!ANCHORED_NODE="34"#!/>#!

Continue testing for more to report and if there are,pair with a BulkAttrRenamer

"#!POSITION="1285.0387410124094 -1830.3932039320389"#!TOP_LEFT="1285.0387410124094 -1830.3932039320389"#!BOTTOM_RIGHT="2059.0462410874102 -1980.3944039440389"#!BOUNDING_RECT="1285.0387410124094 -1830.3932039320389 774.00750007500073 150.00120001200011"#!ORDER="500000000000079"#!FOLLOW_ANCHOR="true"#!INFO_NODE="false"#!COLOUR="1,1,0.78431372549019607,0.19607843137254902"#!SIZE_POLICY="10"#!ANCHORED_NODE="38"#!/>#!

This could work but would be tricky.You'd have to strip the trailing ## suffix from every attr name,attach whatever ## was there as a new attribute int he process,then group by that in the Aggregator.Could work BUt is harder to understand

"#!POSITION="2237.5223752237516 -1938.1433314333135"#!TOP_LEFT="2237.5223752237516 -1938.1433314333135"#!BOTTOM_RIGHT="3293.3761837618372 -2232.1459714597136"#!BOUNDING_RECT="2237.5223752237516 -1938.1433314333135 1055.8538085380856 294.00264002640023"#!ORDER="500000000000080"#!FOLLOW_ANCHOR="true"#!INFO_NODE="false"#!COLOUR="1,1,0.78431372549019607,0.19607843137254902"#!SIZE_POLICY="10"#!ANCHORED_NODE="9"#!/>#!
#! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! Value TIMESTAMP NAME SET_TO Value NAME DATE SET_TO Value DATE WHAT ARE YOU REPORTING SET_TO Value WHAT ARE YOU REPORTING "/>#! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #!
FME_PYTHON_VERSION 27GUI IGNORE GOOGLESHEETS_IN_FME_GROUP_NAMED1_GOOGLESHEETS_1,GOOGLESHEETS_IN_NC_GOOGLESHEETS_1,GOOGLESHEETS_IN_GOOGLESHEETS_ADV_PARM_GROUP_GOOGLESHEETS_1,GOOGLESHEETS_IN_READ_BLANK_CELLS_AS_GOOGLESHEETS_1,GOOGLESHEETS_IN_CELLS_PER_REQUEST_GOOGLESHEETS_1,SPREADSHEET_GOOGLESHEETS_1,DestDataset_XLSXW_1,XLSXW_OUT_FME_GROUP_NAMED1_XLSXW_1,XLSXW_OUT_OVERWRITE_FILE_XLSXW_1,XLSXW_OUT_TEMPLATEFILE_XLSXW_1,XLSXW_OUT_TEMPLATE_SHEET_XLSXW_1DEFAULT_MACRO DestDataset_XLSXW /tmp/nothing.xlsxGUI FILENAME DestDataset_XLSXW Excel_Files(*.xlsx;*.xlsm;*.xls)|*.xlsx;*.xlsm;*.xls|All_files(*)|* Destination Microsoft Excel File:INCLUDE [ if {{$(DestDataset_XLSXW)} == {}} { puts_real {Parameter 'DestDataset_XLSXW' must be given a value.};exit 1;};]#!START_HEADER#!START_WB_HEADERREADER_TYPE MULTI_READERMULTI_READER_TYPE{0} GOOGLESHEETSMULTI_READER_KEYWORD{0} GOOGLESHEETS_1MULTI_READER_GEN_DIRECTIVES{0} START_COLUMN,,GOOGLESHEETS_ADV_PARM_GROUP,FME_DISCLOSURE_CLOSED,SPREADSHEET,https: solidus solidus docs.google.com solidus spreadsheets solidus d solidus 1kfe1BR4pzvM2fju3aEiChjDtrhR-jFz1D6pPMgs0Tds solidus edit#gid=92296608,FIELD_NAMES_ROW,1,READ_BLANK_CELLS_AS,Missing,END_COLUMN,,QUERY_FEATURE_TYPES_FOR_MERGE_FILTERS,Yes,EXPOSE_ATTRS_GROUP,FME_DISCLOSURE_CLOSED,_MERGE_SCHEMAS,YES,NC,administrator space Google space Sheets,TABLELIST, Form Responses 1 ,EVALUATE_FORMULAS,Yes,GOOGLESHEETS_EXPOSE_FORMAT_ATTRS,,CELLS_PER_REQUEST,5000WRITER_TYPE MULTI_WRITERMULTI_WRITER_DATASET_ORDER BY_IDMULTI_WRITER_FIRST_WRITER_ID 0MULTI_WRITER_TYPE{0} XLSXWMULTI_WRITER_KEYWORD{0} XLSXW_1#!END_WB_HEADER#!START_WB_HEADERMACRO WB_KEYWORD "GOOGLESHEETS_1"#!END_WB_HEADER#!START_SOURCE_HEADER GOOGLESHEETS GOOGLESHEETS_1#!END_SOURCE_HEADER#!START_WB_HEADERDEFAULT_MACRO SourceDatasetINCLUDE [ if {{$(SourceDataset)} != ""} { \ puts {DEFAULT_MACRO SourceDataset_GOOGLESHEETS_1 $(SourceDataset)} \ } ]#!END_WB_HEADER#!START_SOURCE_HEADER GOOGLESHEETS GOOGLESHEETS_1DEFAULT_MACRO SourceDataset_GOOGLESHEETS_1 NULLDEFAULT_MACRO GOOGLESHEETS_IN_QUERY_FEATURE_TYPES_FOR_MERGE_FILTERS_GOOGLESHEETS_1 YesGOOGLESHEETS_1_QUERY_FEATURE_TYPES_FOR_MERGE_FILTERS "$(GOOGLESHEETS_IN_QUERY_FEATURE_TYPES_FOR_MERGE_FILTERS_GOOGLESHEETS_1)"DEFAULT_MACRO GOOGLESHEETS_IN_FME_GROUP_NAMED1_GOOGLESHEETS_1 GUI OPTIONAL DISCLOSUREGROUP GOOGLESHEETS_IN_FME_GROUP_NAMED1_GOOGLESHEETS_1 GOOGLESHEETS_IN_NC_GOOGLESHEETS_1 Service ConnectionDEFAULT_MACRO GOOGLESHEETS_IN_NC_GOOGLESHEETS_1 administrator Google SheetsGOOGLESHEETS_1_NC "$(GOOGLESHEETS_IN_NC_GOOGLESHEETS_1)"GUI NAMED_CONNECTION_ENCODED GOOGLESHEETS_IN_NC_GOOGLESHEETS_1 "Google Sheets" Google Sheets Connection:DEFAULT_MACRO GOOGLESHEETS_IN_GOOGLESHEETS_ADV_PARM_GROUP_GOOGLESHEETS_1 GUI OPTIONAL DISCLOSUREGROUP GOOGLESHEETS_IN_GOOGLESHEETS_ADV_PARM_GROUP_GOOGLESHEETS_1 GOOGLESHEETS_IN_EVALUATE_FORMULAS%GOOGLESHEETS_IN_READ_BLANK_CELLS_AS_GOOGLESHEETS_1%GOOGLESHEETS_IN_CELLS_PER_REQUEST_GOOGLESHEETS_1 AdvancedDEFAULT_MACRO GOOGLESHEETS_IN_READ_BLANK_CELLS_AS_GOOGLESHEETS_1 MissingGOOGLESHEETS_1_READ_BLANK_CELLS_AS "$(GOOGLESHEETS_IN_READ_BLANK_CELLS_AS_GOOGLESHEETS_1)"GUI CHOICE GOOGLESHEETS_IN_READ_BLANK_CELLS_AS_GOOGLESHEETS_1 Missing%Null Read Blank Cells As:DEFAULT_MACRO GOOGLESHEETS_IN_CELLS_PER_REQUEST_GOOGLESHEETS_1 5000GOOGLESHEETS_1_CELLS_PER_REQUEST "$(GOOGLESHEETS_IN_CELLS_PER_REQUEST_GOOGLESHEETS_1)"GUI INTEGER GOOGLESHEETS_IN_CELLS_PER_REQUEST_GOOGLESHEETS_1 Cells Per Request:DEFAULT_MACRO GOOGLESHEETS_IN_EXPOSE_ATTRS_GROUP_GOOGLESHEETS_1 FME_DISCLOSURE_CLOSEDGOOGLESHEETS_1_EXPOSE_ATTRS_GROUP "$(GOOGLESHEETS_IN_EXPOSE_ATTRS_GROUP_GOOGLESHEETS_1)"# ============================================================================ DEFAULT_MACRO GOOGLESHEETS_IN_ATTRIBUTE_READING_GOOGLESHEETS_1 DEFLINEGOOGLESHEETS_1_ATTRIBUTE_READING "$(GOOGLESHEETS_IN_ATTRIBUTE_READING_GOOGLESHEETS_1)"# ============================================================================ GOOGLESHEETS_1_GENERATE_FME_BUILD_NUM 18528# Add a new text field for the navigation tree in WB.More detail in BUG51426.DEFAULT_MACRO SPREADSHEET_GOOGLESHEETS_1 https: docs.google.com spreadsheets d 1kfe1BR4pzvM2fju3aEiChjDtrhR-jFz1D6pPMgs0Tds edit#gid=92296608GUI STRING_ENCODED_READONLY SPREADSHEET_GOOGLESHEETS_1 Spreadsheet:GOOGLESHEETS_1_SPREADSHEET "$(SPREADSHEET_GOOGLESHEETS_1)"GOOGLESHEETS_1_DATASET "$(SourceDataset_GOOGLESHEETS_1)"#!END_SOURCE_HEADER#!START_WB_HEADERMACRO WB_KEYWORD "XLSXW_1"#!END_WB_HEADER#!START_DEST_HEADER XLSXW XLSXW_1# ============================================================================# First get the dataset for the database.For Excel,it's the file name.# For now we'll use whatever they had when they generated this mapping file,# and not reprompt#!END_DEST_HEADER#!START_WB_HEADERDEFAULT_MACRO DestDatasetINCLUDE [ if {"$(DestDataset)" != ""} { \ puts {DEFAULT_MACRO DestDataset_XLSXW_1 $(DestDataset)} \ } ]#!END_WB_HEADER#!START_DEST_HEADER XLSXW XLSXW_1DEFAULT_MACRO DestDataset_XLSXW_1 $(DestDataset_XLSXW)GUI FILENAME DestDataset_XLSXW_1 Excel_Files(*.xlsx;*.xlsm;*.xls)|*.xlsx;*.xlsm;*.xls|All_files(*)|* Destination Microsoft Excel File:# ============================================================================DEFAULT_MACRO XLSXW_OUT_FME_GROUP_NAMED1_XLSXW_1 GUI OPTIONAL DISCLOSUREGROUP XLSXW_OUT_FME_GROUP_NAMED1_XLSXW_1 XLSXW_OUT_OVERWRITE_FILE_XLSXW_1%XLSXW_OUT_TEMPLATEFILE_XLSXW_1%XLSXW_OUT_TEMPLATE_SHEET_XLSXW_1 Writer Parameters# Whether or not to overwrite the fileDEFAULT_MACRO XLSXW_OUT_OVERWRITE_FILE_XLSXW_1 NoXLSXW_1_OVERWRITE_FILE "$(XLSXW_OUT_OVERWRITE_FILE_XLSXW_1)"GUI ACTIVECHOICE XLSXW_OUT_OVERWRITE_FILE_XLSXW_1 Yes%No,XLSXW_OUT_TEMPLATEFILE_XLSXW_1,XLSXW_OUT_TEMPLATE_SHEET_XLSXW_1,XLSXW_OUT_+TEMPLATEFILE+ Overwrite Existing File:# Template file optionDEFAULT_MACRO XLSXW_OUT_TEMPLATEFILE_XLSXW_1 XLSXW_1_TEMPLATEFILE "$(XLSXW_OUT_TEMPLATEFILE_XLSXW_1)"GUI OPTIONAL FILENAME_MUSTEXIST XLSXW_OUT_TEMPLATEFILE_XLSXW_1 Excel_Files(*.xlsx;*.xlsm;*.xls)|*.xlsx;*.xlsm;*.xls|Excel_Workbook_2007(*.xlsx)|*.xlsx|Excel_Macro_Workbook(*.xlsm)|*.xlsm|Excel_Workbook_Pre_2007(*.xls)|*.xls|All_files(*)|* Template File:GUI LOOKUP XLSXW_OUT_TEMPLATEFILE_XLSXW_1 ,DEFAULT_MACRO XLSXW_OUT_TEMPLATE_SHEET_XLSXW_1 XLSXW_1_TEMPLATE_SHEET "$(XLSXW_OUT_TEMPLATE_SHEET_XLSXW_1)"GUI OPTIONAL DYNAMIC_SINGLE_SELECT XLSXW_OUT_TEMPLATE_SHEET_XLSXW_1 $[XLSXW_OUT_TEMPLATEFILE_XLSXW_1],RETRIEVE_ALL_TABLE_NAMES,Yes,IGNORE_ALL_NAMED_RANGES,Yes,_FORMAT_OVERRIDE_,XLSXW Template Sheet:GUI LOOKUP XLSXW_OUT_TEMPLATE_SHEET_XLSXW_1 ,# ============================================================================# Parameters whose values will be percolated to the feature types,but will not# remain as writer level settings# Default to not drop feature type firstDEFAULT_MACRO XLSXW_OUT_DROP_TABLE_XLSXW_1 NoXLSXW_1_DROP_TABLE "$(XLSXW_OUT_DROP_TABLE_XLSXW_1)"# Default to not truncate feature type first (removeallcelldata,retainformatting/headers,etc.)DEFAULT_MACRO XLSXW_OUT_TRUNCATE_TABLE_XLSXW_1 NoXLSXW_1_TRUNCATE_TABLE "$(XLSXW_OUT_TRUNCATE_TABLE_XLSXW_1)"# Maintain compatibility with lenient attrName.* matchingDEFAULT_MACRO XLSXW_OUT_STRICT_SCHEMA_ADDITIONAL_ATTRIBUTE_MATCHING_XLSXW_1 yesXLSXW_1_STRICT_SCHEMA_ADDITIONAL_ATTRIBUTE_MATCHING "$(XLSXW_OUT_STRICT_SCHEMA_ADDITIONAL_ATTRIBUTE_MATCHING_XLSXW_1)"# Default to write out the field namesDEFAULT_MACRO XLSXW_OUT_FIELD_NAMES_OUT_XLSXW_1 YesXLSXW_1_FIELD_NAMES_OUT "$(XLSXW_OUT_FIELD_NAMES_OUT_XLSXW_1)"# Default writer modeDEFAULT_MACRO XLSXW_OUT_WRITER_MODE_XLSXW_1 InsertXLSXW_1_WRITER_MODE "$(XLSXW_OUT_WRITER_MODE_XLSXW_1)"# Default raster writing typeDEFAULT_MACRO XLSXW_OUT_RASTER_FORMAT_XLSXW_1 PNGXLSXW_1_RASTER_FORMAT "$(XLSXW_OUT_RASTER_FORMAT_XLSXW_1)"# ============================================================================# Choose excel file protection modeDEFAULT_MACRO XLSXW_OUT_PROTECT_SHEET_XLSXW_1 NOXLSXW_1_PROTECT_SHEET "$(XLSXW_OUT_PROTECT_SHEET_XLSXW_1)"# Whether or not to enable sheet password protectionDEFAULT_MACRO XLSXW_OUT_PROTECT_SHEET_PASSWORD_XLSXW_1 XLSXW_1_PROTECT_SHEET_PASSWORD "$(XLSXW_OUT_PROTECT_SHEET_PASSWORD_XLSXW_1)"# Which kind of protection levelDEFAULT_MACRO XLSXW_OUT_PROTECT_SHEET_LEVEL_XLSXW_1 XLSXW_1_PROTECT_SHEET_LEVEL "$(XLSXW_OUT_PROTECT_SHEET_LEVEL_XLSXW_1)"# Which kind of specific permissions will be enabledDEFAULT_MACRO XLSXW_OUT_PROTECT_SHEET_PERMISSIONS_XLSXW_1 XLSXW_1_PROTECT_SHEET_PERMISSIONS "$(XLSXW_OUT_PROTECT_SHEET_PERMISSIONS_XLSXW_1)"# ============================================================================# Opt in for destination dataset type vs format type validationDEFAULT_MACRO XLSXW_OUT_DESTINATION_DATASETTYPE_VALIDATION_XLSXW_1 YesXLSXW_1_DESTINATION_DATASETTYPE_VALIDATION "$(XLSXW_OUT_DESTINATION_DATASETTYPE_VALIDATION_XLSXW_1)"DEFAULT_MACRO XLSXW_OUT_COORDINATE_SYSTEM_GRANULARITY_XLSXW_1 FEATUREXLSXW_1_COORDINATE_SYSTEM_GRANULARITY "$(XLSXW_OUT_COORDINATE_SYSTEM_GRANULARITY_XLSXW_1)"# ============================================================================ XLSXW_1_GENERATE_FME_BUILD_NUM 18528XLSXW_1_DATASET "$(DestDataset_XLSXW_1)"#!END_DEST_HEADER#!START_WB_HEADER#!END_WB_HEADER#!END_HEADERLOG_FILENAME "$(FME_MF_DIR)Test_and_Rename_亚搏国际在线官网Community_Suggestion.log"LOG_APPEND NOLOG_FILTER_MASK -1LOG_MAX_FEATURES 200LOG_MAX_RECORDED_FEATURES 200FME_REPROJECTION_ENGINE FMEFME_IMPLICIT_CSMAP_REPROJECTION_MODE AutoFME_GEOMETRY_HANDLING EnhancedFME_STROKE_MAX_DEVIATION 0DEFAULT_MACRO DATASET_KEYWORD_GOOGLESHEETS_1 GOOGLESHEETS_1DEFAULT_MACRO DATASET_KEYWORD_XLSXW_1 XLSXW_1# -------------------------------------------------------------------------GOOGLESHEETS_1_READER_META_ATTRIBUTES fme_feature_type# -------------------------------------------------------------------------MULTI_READER_CONTINUE_ON_READER_FAILURE No# -------------------------------------------------------------------------MACRO WORKSPACE_NAME Test_and_Rename_Community_SuggestionMACRO FME_VIEWER_APP fmedatainspector# -------------------------------------------------------------------------INCLUDE [ if {[info exists env(FME_TEMP)] && [file isdirectory $env(FME_TEMP)]} {set gVisualizerTemp $env(FME_TEMP)} elseif {[info exists env(TEMP)] && [file isdirectory $env(TEMP)]} {set gVisualizerTemp $env(TEMP)} elseif { $tcl_platform(platform) == "unix" } {set gVisualizerTemp "/tmp"} else {set gVisualizerTemp c:};regsub -all {[ ,&]} {$(WORKSPACE_NAME)} {_} wsname;set gVisualizerTemp $gVisualizerTemp/${wsname}_[clock format [clock seconds] -format %H%M%S];puts "MACRO WORKSPACE_TEMP_DIR $gVisualizerTemp";MACRO VISUALIZER_FEATURE_FILE $(WORKSPACE_TEMP_DIR)/inspector.ffsMACRO VISUALIZER_SCHEMA_FILE $(WORKSPACE_TEMP_DIR)/inspector.fscMACRO VISUALIZER_CREATE_SPATIAL_INDEX YES# -------------------------------------------------------------------------FACTORY_DEF * RoutingFactory FACTORY_NAME "Router and Unexpected Input Remover" COMMAND_PARM_EVALUATION SINGLE_PASS MULTI_READER_KEYWORD $(DATASET_KEYWORD_GOOGLESHEETS_1) INPUT FEATURE_TYPE * ROUTE GOOGLESHEETS "GOOGLESHEETS_1::Form Responses 1" multi_reader_keyword,$(DATASET_KEYWORD_GOOGLESHEETS_1) TO FME_GENERIC "::Form Responses 1" ALIAS_GEOMETRY MERGE_INPUT Yes OUTPUT ROUTED FEATURE_TYPE *GOOGLESHEETS_1_MERGE_DEF "GOOGLESHEETS_1::Form Responses 1" EXACT Form Responses 1 DEFLINE googlesheets_start_row,,googlesheets_end_row,,googlesheets_evaluate_formulas,Yes,googlesheets_field_names_row,1,googlesheets_start_column,,googlesheets_end_column,,fme_attribute_reading,defined,Timestamp,text,Name,text,Date,text,What are you reporting,text,From Time,text,To Time,text,Activity,text,Location,text,Police District,text,Neighborhood,text,Activity Description,text,Do you have additional activities to report?,text,From Time00,text,To Time00,text,Activity00,text,Location00,text,Police District00,text,Neighborhood00,text,Activity Description00,text,Do you have additional activities to report?00,text,From Time01,text,To Time01,text,Activity01,text,Location01,text,Police District01,text,Neighborhood01,text,Activity Description01,text,Do you have additional activities to report?01,text,From Time02,text,To Time02,text,Activity02,text,Location02,text,Police District02,text,Neighborhood02,text,Activity Description02,text,Do you have additional activities to report?02,text,From Time03,text,To Time03,text,Activity03,text,Location03,text,Police District03,text,Neighborhood03,text,Activity Description03,text,Do you have additional activities to report?03,text,From Time04,text,To Time04,text,Activity04,text,Location04,text,Police District04,text,Neighborhood04,text,Activity Description04,text,Do you have additional activities to report?04,text,From Time05,text,To Time05,text,Activity05,text,Location05,text,Police District05,text,Neighborhood05,text,Activity Description05,text,Do you have additional activities to report?05,text,From Time06,text,To Time06,text,Activity06,text,Location06,text,Police District06,text,Neighborhood06,text,Activity Description06,text,Do you have additional activities to report?06,text,From Time07,text,To Time07,text,Activity07,text,Location07,text,Police District07,text,Neighborhood07,text,Activity Description07,text,Do you have additional activities to report?07,text,From Time08,text,To Time08,text,Activity08,text,Location08,text,Police District08,text,Neighborhood08,text,Activity Description08,text,Do you have additional activities to report?08,text,Time From,text,Time To,text,Location09,text,Number of Participants,text,Describe the Positive Feeback,text,What type best describes the feedback,text,Date Received,text,What event if the feedback about?,text,Client Interaction,text,Services Provided,text,Referrals Made To,text,Other,text,Employment,text,Hamilton County Servies,text,Rent Utility Assistance,text,Medical Mental Services,text,Homeless,text,City of Cincinnati,text,Name of Event,text,Location10,text,Did you organize or participate in this event?,text,Number of Participants00,text,Did you turn in the attendance sheet to Victor?,text,Did you deliver the CIRV messages at this event?,text,Who was the event sponsor?,text# -------------------------------------------------------------------------FACTORY_DEF * TeeFactory FACTORY_NAME "Form Responses 1 (GOOGLESHEETS_1) Splitter" INPUT FEATURE_TYPE "Form Responses 1" OUTPUT FEATURE_TYPE "Form Responses 1_GOOGLESHEETS_1"DEFAULT_MACRO WB_CURRENT_CONTEXT# -------------------------------------------------------------------------FACTORY_DEF {*} TeeFactory FACTORY_NAME BulkAttributeRenamer INPUT FEATURE_TYPE "Form Responses 1_GOOGLESHEETS_1" OUTPUT { FEATURE_TYPE BulkAttributeRenamer_OUTPUT @RenameAttributes(PATTERN_REPLACE,CASECHANGE, ," "," ","upper"," ","-_","RENAME","NONFME") }# -------------------------------------------------------------------------FACTORY_DEF * TestFactory FACTORY_NAME DAILY_LOG_TESTER INPUT FEATURE_TYPE BulkAttributeRenamer_OUTPUT TEST @EvaluateExpression(FDIV,STRING_ENCODED, Value WHAT ARE YOU REPORTING ,DAILY_LOG_TESTER) = Daily Log ENCODED TEST @EvaluateExpression(FDIV,STRING_ENCODED, Value NAME ,DAILY_LOG_TESTER) = Dorron Hunter ENCODED TEST @EvaluateExpression(FDIV,STRING_ENCODED, Value DATE ,DAILY_LOG_TESTER) = 7 3 2018 ENCODED BOOLEAN_OPERATOR AND OUTPUT PASSED FEATURE_TYPE DAILY_LOG_TESTER_PASSEDFACTORY_DEF * TeeFactory FACTORY_NAME "DAILY_LOG_TESTER PASSED Splitter" INPUT FEATURE_TYPE DAILY_LOG_TESTER_PASSED OUTPUT FEATURE_TYPE DAILY_LOG_TESTER_PASSED_0_yipXIrenba4= OUTPUT FEATURE_TYPE DAILY_LOG_TESTER_PASSED_1_/NSxkMtKKj0=# -------------------------------------------------------------------------FACTORY_DEF * TestFactory FACTORY_NAME MORE_TO_REPORT INPUT FEATURE_TYPE DAILY_LOG_TESTER_PASSED_0_yipXIrenba4= TEST @EvaluateExpression(FDIV,STRING_ENCODED, Value DO YOU HAVE ADDITIONAL ACTIVITIES TO REPORT? ,MORE_TO_REPORT) = Yes ENCODED BOOLEAN_OPERATOR OR OUTPUT PASSED FEATURE_TYPE MORE_TO_REPORT_PASSEDFACTORY_DEF * TeeFactory FACTORY_NAME "MORE_TO_REPORT PASSED Splitter" INPUT FEATURE_TYPE MORE_TO_REPORT_PASSED OUTPUT FEATURE_TYPE MORE_TO_REPORT_PASSED_0_gCngwEQZQBA= OUTPUT FEATURE_TYPE MORE_TO_REPORT_PASSED_1_QTZB00ktnqE=# -------------------------------------------------------------------------FACTORY_DEF {*} TeeFactory FACTORY_NAME BulkAttributeRenamer_2 INPUT FEATURE_TYPE MORE_TO_REPORT_PASSED_1_QTZB00ktnqE= OUTPUT { FEATURE_TYPE BulkAttributeRenamer_2_OUTPUT @RenameAttributes(PATTERN_REPLACE,STRINGREPLACE,YES,"00",""," "," ","-_","RENAME","NONFME") }# -------------------------------------------------------------------------FACTORY_DEF * TestFactory FACTORY_NAME MORE_TO_REPORT_2 INPUT FEATURE_TYPE MORE_TO_REPORT_PASSED_0_gCngwEQZQBA= TEST @EvaluateExpression(FDIV,STRING_ENCODED, Value DO YOU HAVE ADDITIONAL ACTIVITIES TO REPORT?00 ,MORE_TO_REPORT_2) = Yes ENCODED BOOLEAN_OPERATOR OR OUTPUT PASSED FEATURE_TYPE MORE_TO_REPORT_2_PASSED# -------------------------------------------------------------------------FACTORY_DEF {*} TeeFactory FACTORY_NAME BulkAttributeRenamer_3 INPUT FEATURE_TYPE MORE_TO_REPORT_2_PASSED OUTPUT { FEATURE_TYPE BulkAttributeRenamer_3_OUTPUT @RenameAttributes(PATTERN_REPLACE,STRINGREPLACE,YES,"01",""," "," ","-_","RENAME","NONFME") }# -------------------------------------------------------------------------FACTORY_DEF * RoutingFactory FACTORY_NAME "Destination Feature Type Routing Correlator" COMMAND_PARM_EVALUATION SINGLE_PASS INPUT FEATURE_TYPE * ROUTE FME_GENERIC DAILY_LOG_TESTER_PASSED_1_/NSxkMtKKj0= TO XLSXW __GO_TO_FINAL_OUTPUT_ROUTER__ multi_writer_id,0, SupplyAttributes ENCODED __wb_out_feat_type__ Form space Responses space 1 GEOMETRY ROUTE FME_GENERIC BulkAttributeRenamer_2_OUTPUT TO XLSXW __GO_TO_FINAL_OUTPUT_ROUTER__ multi_writer_id,0, SupplyAttributes ENCODED __wb_out_feat_type__ Form space Responses space 1 GEOMETRY ROUTE FME_GENERIC BulkAttributeRenamer_3_OUTPUT TO XLSXW __GO_TO_FINAL_OUTPUT_ROUTER__ multi_writer_id,0, SupplyAttributes ENCODED __wb_out_feat_type__ Form space Responses space 1 GEOMETRY FEATURE_TYPE_ATTRIBUTE __wb_out_feat_type__ OUTPUT ROUTED FEATURE_TYPE * OUTPUT NOT_ROUTED FEATURE_TYPE __nuke_me__ @Tcl2("FME_StatMessage 818059 [FME_GetAttribute fme_template_feature_type] 818060 818061 fme_warn")# -------------------------------------------------------------------------FACTORY_DEF * TeeFactory FACTORY_NAME "Final Output Nuker" INPUT FEATURE_TYPE __nuke_me__# -------------------------------------------------------------------------FACTORY_DEF * CreationFactory FACTORY_NAME VisualizerProcessor CREATE_AT_END OUTPUT FEATURE_TYPE __NUKEME__ @TCL("if [file exists {$(WORKSPACE_TEMP_DIR)}] {set files [glob -nocomplain -directory {$(WORKSPACE_TEMP_DIR)} -tails *.ffs];if {[llength $files] == 1} { set theFile {$(WORKSPACE_TEMP_DIR)/};append theFile [lindex $files 0];eval FME_Execute System \173\042$(FME_HOME_UNIX)/fmedatainspector\042 --visualizer --single-application --delete-on-close --no-source-prompt -f FFS \042$theFile\042 & \175;} elseif { [llength $files] == 0 } { catch { file delete -force {$(WORKSPACE_TEMP_DIR)} };} else { set filesNoExt {};set lastfile {};foreach {fileName} [lsort $files] { set fileNoExt [string trimright $fileName {.ffs}];if [regexp {(.*)_[0-9]*$} $fileNoExt wholething fileNoExtBase] { if { $fileNoExtBase == $lastfile } { continue } };set lastfile $fileNoExt;lappend filesNoExt $fileNoExt };eval FME_Execute System \173\042$(FME_HOME_UNIX)/fmedatainspector\042 --visualizer --single-application --delete-on-close --no-source-prompt -d {$(WORKSPACE_TEMP_DIR)} -a ffs -f FFS $filesNoExt & \175;};};")FACTORY_DEF * TeeFactory FACTORY_NAME VisualizerCleaner INPUT FEATURE_TYPE __NUKEME__# -------------------------------------------------------------------------XLSXW_1_DEF "Form Responses 1" xlsx_drop_sheet No xlsx_trunc_sheet No xlsx_sheet_order "" xlsx_freeze_end_row "" xlsx_names_are_positions No xlsx_field_names_out Yes xlsx_start_col "" xlsx_start_row "" xlsx_offset_col "" xlsx_offset_row "" xlsx_raster_type PNG xlsx_table_writer_mode Insert xlsx_row_id_column "" xlsx_protect_sheet NO xlsx_protect_sheet_level xlsx_protect_sheet_password xlsx_protect_sheet_permissions TIMESTAMP auto(20,version 1 number_format_string font font_color background_color pattern_color pattern_style CELL_BORDER_FORMATTING NO CELL_BORDER_COLOR CELL_BORDER_STYLE text_alignment NO horizontal_alignment vertical_alignment indent text_orientation text_control cell_protection NO hide_cells lock_cells ) NAME auto(20,version 1 number_format_string font font_color background_color pattern_color pattern_style CELL_BORDER_FORMATTING NO CELL_BORDER_COLOR CELL_BORDER_STYLE text_alignment NO horizontal_alignment vertical_alignment indent text_orientation text_control cell_protection NO hide_cells lock_cells ) DATE auto(20,version 1 number_format_string font font_color background_color pattern_color pattern_style CELL_BORDER_FORMATTING NO CELL_BORDER_COLOR CELL_BORDER_STYLE text_alignment NO horizontal_alignment vertical_alignment indent text_orientation text_control cell_protection NO hide_cells lock_cells ) "WHAT ARE YOU REPORTING" auto(20,version 1 number_format_string font font_color background_color pattern_color pattern_style CELL_BORDER_FORMATTING NO CELL_BORDER_COLOR CELL_BORDER_STYLE text_alignment NO horizontal_alignment vertical_alignment indent text_orientation text_control cell_protection NO hide_cells lock_cells ) "FROM TIME" auto(20,version 1 number_format_string font font_color background_color pattern_color pattern_style CELL_BORDER_FORMATTING NO CELL_BORDER_COLOR CELL_BORDER_STYLE text_alignment NO horizontal_alignment vertical_alignment indent text_orientation text_control cell_protection NO hide_cells lock_cells ) "TO TIME" auto(20,version 1 number_format_string font font_color background_color pattern_color pattern_style CELL_BORDER_FORMATTING NO CELL_BORDER_COLOR CELL_BORDER_STYLE text_alignment NO horizontal_alignment vertical_alignment indent text_orientation text_control cell_protection NO hide_cells lock_cells ) ACTIVITY auto(20,version 1 number_format_string font font_color background_color pattern_color pattern_style CELL_BORDER_FORMATTING NO CELL_BORDER_COLOR CELL_BORDER_STYLE text_alignment NO horizontal_alignment vertical_alignment indent text_orientation text_control cell_protection NO hide_cells lock_cells ) LOCATION auto(20,version 1 number_format_string font font_color background_color pattern_color pattern_style CELL_BORDER_FORMATTING NO CELL_BORDER_COLOR CELL_BORDER_STYLE text_alignment NO horizontal_alignment vertical_alignment indent text_orientation text_control cell_protection NO hide_cells lock_cells ) "POLICE DISTRICT" auto(20,version 1 number_format_string font font_color background_color pattern_color pattern_style CELL_BORDER_FORMATTING NO CELL_BORDER_COLOR CELL_BORDER_STYLE text_alignment NO horizontal_alignment vertical_alignment indent text_orientation text_control cell_protection NO hide_cells lock_cells ) NEIGHBORHOOD auto(20,version 1 number_format_string font font_color background_color pattern_color pattern_style CELL_BORDER_FORMATTING NO CELL_BORDER_COLOR CELL_BORDER_STYLE text_alignment NO horizontal_alignment vertical_alignment indent text_orientation text_control cell_protection NO hide_cells lock_cells ) "ACTIVITY DESCRIPTION" auto(20,version 1 number_format_string font font_color background_color pattern_color pattern_style CELL_BORDER_FORMATTING NO CELL_BORDER_COLOR CELL_BORDER_STYLE text_alignment NO horizontal_alignment vertical_alignment indent text_orientation text_control cell_protection NO hide_cells lock_cells )