Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

EXCEL# returns the result of an EXCEL spreadsheet calculation in TeLiTab format

Syntax

EXCEL#(Mode%, SourceSheet$, TargetSheet$, TelitabInput$, InputScript$, OutputScript$, [InpVar])

Arguments

  • Mode% controls the modus of EXCEL (0 if you don't want to see the sheet, 1 if you want the sheet to be visible).
  • SourceSheet$ is the file name of the Excel sheet.
    • If no path is included in the string for SourceSheet$, the file is expected to be in the applications directory of the knowledge base (see also Directory structure ).
    • If "NullString" is provided as value for SourceSheet$, the sheet has to be embedded in the expression using the right mouse option "Include Binary in frame...".
  • TargetSheet$ is the name under which the created Excel sheet will be saved.
    • If no path is included in the string for TargetSheet$, the file is saved on the current Report/Project (..\My knowledge\Project\..) directory of this project (see also Directory structure ).
    • If "NullString" is provided as value, the sheet will not be saved at all.
  • TelitabInput$ is the dataset that can be used as input for the calculation (not required as long as all data required for InputScript$ is available).
  • InputScript$ is the input script (in TeLiTab format) in which the positions in the spreadsheet are stated.
  • OutputScript$ is the output script (in TeLiTab format) in which the positions are given of the data in the sheet to be presented as Telitab$ output of the parameter using the EXCEL#() function.
    Parameters in OutputScript$ should also be defined in InputScript$ with an empty spreadsheet position when you want to receive these values as input for Quaestor. This means that Quaestor will deal with these values provided as input in the solution, while these values where originally not provided but only given to in the spreadsheet. (see also examples).
  • InpVar is an optional list of parameters or expessions. The list may contain one or more parameters required by the InputScript$ of the EXCEL#() function when these are not included in TelitabInput$. In such event, the current case values of the parameters presented in InputScript$ (and included in InpVar or computed earlier) are used as input for the EXCEL file.

...

  1. The scripts (both input and output) for EXCEL#() follows the TeLiTab rules for defining objects/telitabs etc. So, when you want to write something to a sheet named "input" from an object (or TeLiTab) named "DATA" containing parameter "A" and "B" as part of a TeLiTab also containing parameter "C". you can write:

...

C and DATA are list values in the TeLiTab and therefore TEXTITEM1 starts with 2. DATA is an object or TeLiTab and you want to get A and B from this TeLiTab. This can be written as a list of 2 values.

Please make sure the list number is placed below the bracket "{".

Furthermore, special characters (like "{" or "[") in names of the sheet items you refer to are a risk. It might work sometimes but we did not test all use cases.

...

By using a comparable relation as example 1a, but now with an output script added a TeLiTab with Lpp, V_eco, Rt and PE is received as result:

...

TelitabOutput$ will contain the table with all ships with length (Lpp, which was inserted to the sheet as input and is now read to be present in the TeLiTab), economical speed V_eco, resistance Rt and power PE. These values are read from the corresponding column indicated in the output script (1 for Lpp, 10 for V_eco etc.) and the rows below the cell with the value indicated in the output script (Lpp for Lpp, V_eco_knots for V_eco etc.).

...

An example TelitabInput$ would be (see TELITAB for a description of the TeLiTab format):

1                    
"No_cases" 4         
4 "Lpp" "B" "T" "Cb" 
"1" 100 15 6 0.55
"2" 110 16 7 0.60
"3" 120 17 8 0.65
"4" 130 18 7 0.60

...