Help


About  

Name  

QESS - Quick Entry Spread Sheet

[QESS pro] is the paid version. [QESS std] needs no payment but shows advertisement (renamed from [QESS free]).

Download  

QESS pro (Google Play)

QESS std (Google Play)

Copyright 2017, Yoshiaki Watanabe

Summary  

This is a spread sheet software focusing on effective data entry. It has editable keypads. One key touch is assigned to plural characters entry, cell jump and others.

It may be useful to perform a series of routine entry in mobile environment, such as attendance checking, performance evaluation, check list entry, counting, questionnaire, cash book and trip memo.

  1. The keypad layout and input character sequence can be modified freely.
  2. One key touch can be assigned to the entry of plural characters, the jump between cells, calculation of the cell value and others.
  3. It requests permissions for camera or mic when using these. At denying the permission, only the related function is disabled.
  4. It can work without the network connection.
  5. It can describe the behavior of each key with command sequence and JavaScript.
  6. Supported file format are xls, xlsx, csv, tsv and txt. At reading text (csv, tsv, txt), the character encoding can be detected automatically or can be selected manually.
  7. It can execute the Excel formula. It also has a parser of arithmetic expressions.
  8. Data file is compatible to Excel and other spread sheet software, though functions implemented are limited.
  9. It can copy/paste the cell and cell range. It can send and receive the text by using 'Share' function.
  10. It can hide/unhide/delete/insert columns and rows.
  11. It can set media (Image, Video, Audio) into a cell. The function is realized as the reference of the media file. No compatibility with Excel.
  12. It can set hand-write image to a cell.
  13. It can draw line chart, stacked bar chart, group bar chart, pie chart, scatter chart, radar chart, bubble chart, and candlestick chart.
  14. It can execute SQL Query on specified cell-range. The result can be pasted to the sheet.
  15. It can set the cell border and color.
  16. It does not reflect Excel settings about cell merge, chart, image and others.
  17. It has functions for QRcode/barcode input, voice recognition input, and exchanging data with other applications.
  18. It can speak out the text in the cell/cell-range and can create QR code of the text.
  19. It includes sample layout files which can be used in various situations and can be edited freely.
  20. It can export the data file to the external storage area. It can import the data file from the storage area.
  21. It can send out the data file by using file share.
  22. It can search/replace text indicating simple text or regular expression pattern.
  23. It can sort rows ascending/descending order of an indicating key column.
  24. It can print the cell range.
  25. It can display the thumbnail image of the cell describing image URL, Youtube video URL or local media.
  26. It can access a media by double tapping the cell describing the media.

Disclaimer  

This software is distributed with no guarantee. Even if damage/disadvantage relating to this software occurs, we do not take responsibility.

Libraries  

This software uses the following libraries distributed under Apache License 2.0 (http://www.apache.org/licenses/LICENSE-2.0).

  • Apache POI by The Apache Software Foundation (https://poi.apache.org/).
  • Poi-on-android by Dominik Stadler (https://github.com/centic9/poi-on-android).
  • ZXing ("zebra crossing") (https://github.com/zxing/zxing/)
  • Sample Sources in Apache POI Site (https://poi.apache.org/spreadsheet/how-to.html)
  • MPAndroidChart (https://github.com/PhilJay/MPAndroidChart)
  • Zip4j (https://github.com/srikanth-lingala/zip4j)
  • PureWriter/ToastCompat (https://github.com/PureWriter/ToastCompat
  • This software uses the following library distributed under Mozilla Public License 1.1 (https://www.mozilla.org/en-US/MPL/1.1/)

  • juniversalchardet (a Java port of 'universalchardet', that is the encoding detector library of Mozilla) (https://code.google.com/archive/p/juniversalchardet/).
  • Rhino by the Mozilla Foundation (https://developer.mozilla.org/en-US/docs/Mozilla/Projects/Rhino).
  • Privacy Policy  

    This software requests permissions for the camera and the mic. These permissions are not mandatory. The permission for the camera is used to capture QRcode, photo, and video. These are added/linked to the spreadsheet. The permission for the mic is used to capture voice recognized text or sound. These are added/linked to the spreadsheet.

    This software uses the network. The network is used for showing advertisement and homepages. The network is also used for exchanging the spreadsheet data. But the application does not send/receive the spreadsheet data via network without the instructions of the user.

    This software collects no personal data of users.


    Manual  

    This document is bundled to the software, but is hard to read with the small screen of smart phones. This document and other information are uploaded to the support Web page below. It is recommended to read the page with big screens on PCs.
     https://qess-free.web.app/en/
    (The description of this page is shared with QESS-pro and QESS-std.)

    Basic operation  

    Starting  

    Touch icon named QESS. It displays a screen including an entry field, a spreadsheet and a keypad.

    Screen Layout  

    Below picture is the main screen. The bottom keypad part(M) depends on the layout file selected from the icon (C). The layout file is editable.

    ABack button
    BFile name (data file at editing data, layout file at editing keypad layout)
    CSelection of keypad layout file
    DOption menu
    ECoordinate of current cell (the entry data is stored to this cell)
    FEntry bar (On touch, switch to system keyboard. On long touch, show full screen editor)
    GEntry with voice recognition
    HSheet number (On long touch, show context menu. On drag, specify full sheet range)
    IColumn symbol (On long touch, show context menu. On drag, specify column range)
    JRow number (On long touch, show context menu. On drag, specify row range)
    KNormal cell (On touch, set this as current cell. On long touch, show context menu. On double-tap, edit text in full screen or open media.)
    LCurrent cell (the entry data is stored to this cell The actions of double-tap and long-touch are same as normal cell. On drag, specify cell range)
    MKeypad (Editable. On key touch, executing various actions defined in layout file. On long touch, switch to layout edit mode.)

    Selecting Files  

    This application uses two files. One is the data file to hold the sheet data. And another is the layout file to hold the keypad layout settings. Firstly, select these files from the menu icon (C/D).

    the application archive includes following sample layouts. You can make your original layout by modifying these samples.

    sampleScoringEntering evaluation scores sequentially from the top of a list.
    sampleAttendanceEntering records of attend/abcent sequentially from the top of a list.
    sampleBasicCalcImplementing a basic calculator.
    sampleSciCalcImplementing a scientific calculator.
    sampleCheckingAdding and delete checkmarks in a sheet.
    sampleCounterCounting something.
    sampleCounter2Classifying something and counting.
    sampleLoggingRecording a time log for start/stop.
    sampleQuestionnaireFilling in a questionnaire.
    sampleCashcalcImplementing a cashbook calculator.
    sampleCommandsTrying various QESS commands.
    sampleJumpTrying conditional jumps and loops.
    sampleFormulaTrying formulas. Need to set both edges of the range to use formula.
    sampleMultimodalTrying Voice input, QRcode/barcode input, text to speech and media capture.
    sampleJavaScriptTrying JavaScript.
    sampleRpnCalcImplementing a RPN calculator using JavaScript.
    sampleLogCalcImplementing an calculator with log using JavaScript.
    nullKeypadHiding the keypad. Defining no keys.
    sampleMenuCmdTrying <MENU menuItem> command. If the direct command exists, use it.
    sampleShareTrying the Share command. If the app for share destination is not installed, the error message is shown.
    sampleSymbolsEntering various symbols.
    sampleKeyShortcutSample key shortcuts useful when connecting physical keyboard (No button on the screen).

    These samples can be edited according to the purpose of each user. If you cannot find above samples, select 'File Manager»Initialize Sample Files' to reload samples.

    If you want to modify a sample file, it is recommended to save it into a new file, because all sample files return to the initial state, when executing 'Initialize Sample Files'.

    To edit the current layout, check to the checkbox [Menu»Layout edit mode]. Uncheck the checkbox to try the editing result. The layout edit mode can also be entered by long-tapping the keypad. Refer Editing Keypad Layout for details.

    We upload documents to the support Web page such as the explanation of sample files and the method for editing layout .

    Data Entry  

    Select a cell by touching the cell, and enter using the keypad. The cell with red frame (the current-cell) is the editing object at now. The current cell shows the editable value.

    When you touch the entry bar displayed at the top of the screen, the keypad is changed to the system keyboard. When you touch and hold the entry bar, full screen editor is displayed (Full screen editor can also be opened at double-tap of a cell).

    If the cell value starts with equal[=], the cell is an Excel formula cell. If the cell value starts with single-quote['], the cell is a string cell. If the cell value can be converted to numeric, the cell is a numeric cell. Otherwise, the cell is a string cell. Following is the samples.

    InputActual ValueInterpretation
    'String:nullNull String
    'ABCString:ABCHead ['] means string
    ABCString:ABCCannot convert to numeric
    '123String:123Head ['] means string
    123Numeric:123Can convert to numeric
    123XString:123XCannot convert to numeric
    =1+23Formula:1+23Head [=] means formula
    =SUM(A1:B2)Formula:SUM(A1:B2)Head [=] means formula
    '=1+23String:=1+23Head ['] means string
    1+23String:1+23Cannot convert to numeric
    =ABCString:=ABCCannot parse as formula

    The data type can be converted by using [Change Data Type] in the menu. The details about data type are described later.

    Use backslash+n[\n] to insert a new-line character in the cell. Use backslash+t[\t] for a Tab character. In the full screen editor, normal new-line key can be used.

    The option menu is displayed when you touch the menu icon (D) in the action bar (top right corner of the screen).

    The context menu is displayed when you touch and hold a cell or the heading area showing row number or column symbol.

    The items of option menus are listed in Menu Items. The context menu includes a part of the option menu related to the long-tapped item.

    Ending  

    Touch [Back] key to end the software. At the ending, all data are saved automatically.

    Description of Operations  

    Cell Range  

    If you want to carry out some operation on a cell range(block of plural cells), do as follows.

    1. Touch and hold the cell at the corner of the range and select [Specify Range] in the displayed menu. Or drag the current cell.
    2. Touch and hold the cell at the other corner of the range and select an operation in the displayed menu.
    3. The operation is done on the range.
    To cancel range selection, touch Back key.

    If you want to carry out some operation on plural rows or columns, select a row/column operation in the displayed menu. For example, when the range [C1:D2] is marked, the operation [Hide Column] hides the Columns 'C' and 'D' The row/column range can also be specified by dragging the row/column header of the current cell.

    Copy and Paste  

    To execute copy and paste, touch and hold the source cell and select [Copy] operation, then touch and hold the destination cell and select [Paste] operation.

    To execute copy/paste on plural cells, select [Specify Range] before the copy/paste operation. Following is the process to copy data from plural cells and paste these to plural cells

    1. Touch and hold a corner cell of the source range and select [Specify Range] from the menu (or drag the current cell).
    2. Touch and hold other corner cell of the range and select [Copy].
    3. The source range is shown as dotted frame.
    4. Touch and hold a corner cell of the destination range and select [Specify Range] from the menu (or drag the current cell).
    5. Touch and hold other corner cell of the range, and select [Paste].

    When [Copy] is requested, the source range is marked as dotted frame, and the text in the range is copied to the clipboard. When [Paste] is requested, the content of cells in the source range is copied to the cells of the destination range.

    The source range mark is cancelled by [Back] key. But the clipboard text is not cleared at cancelling. If the source range is not marked, the plain text in the clipboard is pasted.

    After pasting cell range, the current cell moves downward(If 'Menu » Settings » Action of Enter Key' is Right, it moves rightward). After pasting row range, the current cell moves downward. After pasting column range, the current cell moves rightward

    Cell Reference  

    The cell reference is the string to express the coordinate of a cell. This application recognizes the A1 format and R1C1 format, both of which are case-insensitive.

    The A1 format is generally used format in spreadsheets such as Excel. The column index is described as 'A,B,C..'' sequentially from the left to the right. And the row index is described as '1,2,3,..' sequentially from the top to the bottom.

    The 'A1' cell is the cell on the left upper corner. The right of 'A1' is 'B1', and below of 'A1' is 'A2'. These are relative indexing. There is also absolute indexing expressed with '$'.

    The R1C1 format is the other format supported by Excel. The row index is described as'R1,R2,R3..' sequentially from the top to the bottom. The column index is described as 'C1,C2,C3..' sequentially from the left to the right.

    The 'R1C1' cell is the cell on the left upper corner. The right of 'R1C1' is 'R1C2', and below of 'R1C1' is 'R2C1'. These are absolute indexing. The relative indexing is expressed by adding '[ ]', such as 'R[1]C[-1]'. The expression 'R[1]C[-1]' means the cell located at one column left (-1 Column) and one row below (+1 Row) of the current cell.

    Examples of R1C1 format

    R2C3The cell at second row and third column
    R[2]C[3]The cell at two step lower and three step right from current cell
    R[0]C[-1]The cell at same row and one step left from current cell
    RC[-1]Same as above. The omission of index is same as the description of '[0]'
    R1CThe cell at first row and same column with the current cell. It means the top cell of current column
    RC1The cell at first column and same row with the current cell. It means the leftmost cell of the current row.
    RCThe current cell
    RC10The cell at same row with the current cell and tenth column

    The example [RC1] and [RC10] can also be interpreted as A1 format. But this application precedes the R1C1 format.

    Calculation  

    This application recognizes the formula and the arithmetic expression.

    The formula is the numerical expression defined in Excel (e.g. 'SUM(A1:B2)', 'A1+B1'). The string starts with '=' is automatically interpreted as a formula (e.g. '=SUM(A1:B2)'). The formula can also be converted from the string description without '=' by using [Change data type»Formula] in the menu. The R1C1 format cannot be described in the formula (e.g. 'SUM(R1C1:R2C2)' is wrong).

    Arithmetic expression is specified in this application. The arithmetic expression permits operators of addition, subtraction, multiplication and division. It also permits parentheses and cell references (both of A1 and R1C1 format). It does not support functions. The arithmetic expression is entered as a string. When the evaluation command <EVAL> is carried out, the arithmetic expression is calculated and is replaced with a numeric result. The expression is also calculated by using [Change data type»Numeric] in the menu. If open parentheses are lack, open parentheses are inserted to the head of the expression. If close parentheses are lack, close parentheses are inserted to the tail of the expression. If a cell reference is found, the cell is evaluated recursively.

    The following table shows example expressions and its evaluation results.

    1+2*37
    (1+2)*39
    2+3)*2+1)*222
    ((2+3)*2+111
    RC[-1]+1When leftward cell is 2, result is 3
    RC[1]+R[-1]CWhen rightward cell is 2 and upward cell is 3, the result is 5

    Data Type and Display Format  

    QESS has following data types and display formats. But when the text file (extension=CSV,TSV,TXT) is used, all types are saved as the text without format. If you want to use various data-types / display-formats, please convert the file to the Excel one (extension=XLS,XLSX) in data file menu.

    Data Type
    Numeric
    Formula
    String
    Display Formats
    Date
    Time
    DateTime
    UserDef1
    UserDef2
    Many Built-in Formats

    These types and formats are compatible with Excel.

    Each format(except Built-in) can be edited in the menu.

    The initial format for UserDef1 is the 3-digit separator. And the initial format for UserDef2 is the currency expression. Formats have no affect to the string type.

    Share  

    The QESS has the sender and receiver functions of text 'Share'.

    When you choose the 'Share' function in other application, the name 'QESS' is displayed in the shared list. The QESS parses the sent text according to the format in 'Menu » Settings » Clipboard Text Form' and inserts the divided text to the cells. The character for dividing text is indicated in 'Menu » Settings » Separator in .txt'. If you want to insert all text into one cell without processing, check the flag 'Menu » Settings » Treat Shared Text Data Without Processing'. After insertion, the current cell moves downward (If 'Menu » Settings » Action of Enter Key' is Right, it moves rightward).

    When you choose the 'Share' function in QESS, it shows the application list to which the text can be sent. The text is acquired from a cell/column/row/sheet or the range, and is formatted with the clipboard text format. When the share is called from 'Cell' menu, the text is acquired from the current cell or the plural cells in the range. When the share is called from 'Column' menu, the text is acquired from the current coumn or the plural columns in the range. When the share is called from 'Row' menu, the text is acquired from the current row or the plural rows in the range.

    To share Media files, use 'Share(Media)'. Or use 'Share' button in the screen shown by 'Menu»File manager»Basic Operations'

    If the application does not have 'Share' function, use 'Copy' / 'Paste' via the clipboard.

    The share function can also be assigned to a key on a keypad. The detail is described in Setting Share.

    Text To Speech (TTS)  

    The QESS speaks the text acquired from a cell/column/row/sheet or the range. The function can be called from the menu and can be assigned to a key on a keypad. In default, the horizontal direction has priority in speak sequence. The cell to speak is shifted from left to right in a row, and then shifted to the next row. The direction can be changed in settings. The speech is stopped by the [Back] key. The silent periods between each column and each row can be indicated in settings. To use TTS, select a language and install the sound data from Android setting menu.

    Input Support Screens  

    QESS prepares screens for effective entry.

    The first one is the screen of the Input Formula. It simplifies the input of the calculation range and function name.

    The usage is as follows.

    1. On one corner of the calculation range, choose [Specify Range] from the menu (or drag the current cell).
    2. On another corner of the range, choose [Specify Range] from the menu. As the result, the calculation range is shown by dotted frame.
    3. On the result cell, choose [Input Formula] from the menu. Then the above screen is displayed.
    4. Enter formula string with buttons and the keyboard.
    If the formula description is wrong, the expression is interpreted as string not as formula.

    Another one is the screen of the Input Series Data. It simplifies the input of serial numerical values. Non-numerical series such as months and weekdays are not supported.

    To use it, select [Input Series Data] in a cell menu. Then the above screen is displayed. Each element on the screen means the following.

    When the range is specified, values are entered to cells in the range. When not specified, values are entered from the current cell.

    Search and Replacement  

    A bar for the search and replacement is shown at the top of the screen, when selecting [Search/Replace Text] in the sheet menu or checking [Search/Replace Text] in the settings.

    The [Srch Up]/[Srch Down] buttons mean the text search upward and downward. The button [Replace] means the text replacement in the current cell.

    The case sensitive search and regular expression search can be set from the 3-dots icon at the right-bottom corner of the bar.

    In the regular expression search, the button [Rplc 1st] replace the text matched to the regular expression first in the current cell, and the button [Rplc All] replace the all matched text in the current cell.

    Media(Image, Video, Audio)  

    The QESS can treat Media (Image, Video and Audio).

    To set a media into a cell, following methods can be employed.

    To open a media file, double-tap the cell.

    The function is not compatible with Excel format. The media is stored apart from the sheet data. The folder for the media files is described in section Files. The media file name is set to the cell. The thumbnail is also shown in the cell, if possible.

    When you want to change the name of the media shown in a cell, use [Rename Media] in the cell menu. Direct change of the cell text breaks the relation of file reference. Also, the exported Excel file does not keep the relation of file reference.

    Drawing Graph  

    The QESS can draw the following graphs.

    Line chart, Stacked bar chart, Grouped bar chart, Pie chart, Scatter chart, Radar chart, Bubble chart、and Candlestick chart.
    Choose [Draw Graph] in the menu of the cell after specifying the data range. The drawing result can be saved and linked to a sheet. For details, refer to the Help in the screen of [Drawing Graph].

    SQL query  

    From the current worksheet or a file, a SQLite table can be created. The search result of the table can be pasted to a sheet. It might be useful, when you need only the part of big data. Choose [SQL query] in the menu of the cell/column/row/sheet after specifying the range. For details, refer to the Help in the screen of [SQL query].

    Print  

    The print function is called from the cell/column/row/sheet menus.

    The term "Range" means the printing cell range on the current sheet. The check boxes "Frame / Border / Fill" mean the drawing flags. The "Scaling" is appointed with "Ratio" or "Pages". The scaling ratio is restricted between 10% and 400%. When the "Pages" value is blank, the page count of that direction has no limit. When value of height direction is specified, the "Auto Cell Height" is Off temporally. The headers and footers fields can be set any string, "Predefined Items" (e.g., page number) or these combination.

    Many printing options are specified in the next preview screen, such as paper size, the number of copies, page range, portrait/landscape, monochrome/color, destination.

    Physical Keyboard  

    The physical keyboard can be used. The characters can be entered when the focus is on the entry bar. To focus on the entry bar, push Enter key. To un-focus from the entry bar, push an arrow key. When the focus exists on the entry bar, the action is similar to the soft keyboard. When the focus does not exist on the entry bar, the current cell is moved by arrow keys and Tab key. And the current cell is cleared by BackSpace key.

    The key shortcut can be described in the layout file. For more detail, refer Shortcut Setting

    Files  

    The data file format is compatible to the spread sheet applications such as Excel. But this application does not reflect graphics, most display styles and other settings settled by other applications. The existing settings are reserved as much as possible, but might be destroyed. Please take file backup and use simple format sheet.

    The working data are saved when the main screen is hidden (for example, by rotating screen or by showing the file list view).

    The data are stored in the following application folder. In some Android OS versions, the folder cannot be accessed from other applications. In this case, connect the device with a PC by Using USB cable and access. Or copy files to some shared folder by using "File Manager>File Export".

    In applications, the description 'storage/' is expressed as 'Internal Storage', 'storage/emulated/0/', etc.

    The application folder is divided to the following sub-folders by the usage.

    When the folders or files are not seen from the connected PC, clear the storage cache and reconnect. And confirm that the USB connection is set as the file transfer mode.

    When exchanging a text file (.csv, .tsv, .txt) between this application and PC/other application, the text might be garbled because of the difference of the character set. The character set is detected automatically but is not perfect. If the text is garbled in the automatic detection, select a proper character set manually. The text in clipboard is 'UTF-8'.

    Basic operations about files can be executed in the screen shown from [Menu»File Manager»Basic Operations].

    The bottom buttons execute the file copy/rename/delete/share. The sub-folder can be created from the folder-icon shown at the top of the screen. To view the content of a file/folder, touch the thumbnail/icon shown at the left-side of list items. The view of a sheet file is a simple form (showing raw data for text files). To view as a complete form, long-tap the file and select Open. If the destination file exists at copying/renaming, suffix is added to avoid overwriting.

    Editing Keypad Layout  

    Layout File  

    To edit keypad layout, long-touch a command button on the keypad. Or check the checkbox [Menu»Settings»Layout Edit Mode].

    It is advisable to modify the file created by using [Menu»Layout File»Save data to new file], because original sample files might be returned to the initial state at resetting the application.

    To exit the layout edit mode, click the icon X on the top-right corner of the screen. Or un-check the checkbox [Menu»Settings»Layout Edit Mode].

    The layout samples are shown bellow.

    The following keypad is constructed from the following table.

    ColumnCount3
    ButtonTextGoodBadClear
    ButtonCommandgood<DOWN>bad<DOWN><CLR>

    The ColumnCount is the count of columns in the screen width. The item indicates that the screen width is divided to 3 and three buttons settle inline. If the ColumnCount is set as 2, two buttons settle inline and one button settles in next row. If the ColumnCount is set as 1, each row has one button. In other words, three buttons are settled vertically.

    The ButtonText is the string displayed on the button. The items indicate that three buttons displays [Good], [Bad], and [Clear].

    The ButtonCommand is the command sequence executed when the button is touched. The command <DOWN> moves the current cell downward, <CLR> clears the current cell. When a normal string is described, the string is added to the current cell.

    When touching the [Good] button, the application adds the string [good] to the current cell and changes the current cell to the downward cell. When touching the [Bad] button, it adds the string [bad] to the current cell and changes the current cell downward. When touching the [Clear] button, it clears the current cell and changes the current cell downward.

    The above setting assumes the usage, where each item in some list is evaluated as good or bad from the top to the bottom.

    Next table is a more complex layout.

    ColumnCount8
    RowHeight48
    ButtonTextChk<^>Unchkv
    ButtonTextSize161616161616
    ButtonTextColor
    ButtonCommand<LEFT><UP><RIGHT><BS><DOWN>
    ButtonColumnSpan212122
    ButtonRowSpan221221
    ButtonBackColor#FFFFEEEE#FFEEFFFF#FFEEFFFF#FFEEFFFF#FFFFEEEE#FFEEFFFF
    CommandsAtLoading<RIGHT><DOWN>

    This layout uses 8 columns. A wide button occupies 2 columns. And a narrow button occupies 1 column. In total, three [2 columns] buttons and two [1 column] buttons occupy 8 columns.

    The column/row span of a button is indicated by ButtonColumnSpan and ButtonRowSpan. For example, the [Chk] button occupies [2 columns] and [2 rows]. the [<] button occupies [1 column] and [2 rows].

    CommandsAtLoading indicates the command sequence executed at loading layout file (Caution: The data and layout files are loaded when QESS returns to the main screen). The meaning of other items can be understood from the name. Default values are used at no setting.

    The value [#FFEEFFEE] used in ButtonBackColor is [ARGB], where the four hexadecimal double-digits numbers mean the value of [Alpha], [Red], [Green], and [Blue]. The value [Alpha] is the opacity. The value [00] is fully transparent and [FF] is fully opaque. The value [Red], [Green] and [Blue] are the mixed quantity of these colors. The value [#FFEEFFEE] means fully opaque, fully green, less red and less blue.

    The buttons are packed in designated order. When a button cannot packed into the row, a new row is added.

    The command indicated in Button Command are addtion/removement of check mark and movement to four directions.

    This setting assumes the checking of some checklist.

    Shortcut Setting  

    The layout file can also describe the shortcut which is useful for physical keyboard, though it is impossible to operate QESS with keyboard only. Following is an example of the shortcut description.

    # KeysCommandsComment
    Ctrl+Up<GO R[-10]C>Go 10 rows upward
    Ctrl+Down<GO R[10]C>Go 10 rows downward
    Alt+M<MENU>Show menu
    First column is the shortcut key, second column is the QESS command, and third column is the comment. The row starting with '#' is ignored. The shortcut key is the sequence of the modifier key and the main key. The modifier key must include 'Ctrl+' or 'Alt+', and may include 'Shift+'. The main key is one of arrow keys ('Up','Down','Left','Right'), the alpha-numeric key or the symbol key. For example, 'Shift+Ctrl+Alt+Up' and 'Ctrl+Alt+5' are available.

    The included sample file 'sampleKeyShortcut.xlsx' is a layout file describing key shortcuts only. You can edit the shortcut and can add a keypad. If you cannot find the layout file, execute 'Menu>FileManager>Initialize sample files'

    More information about sample layout and editing layout is found in QESS Support Page.

    Command Sequence  

    Long command sequence can be assigned to a button. The list Command List shows the available commands. The command is the string enclosed between '<' and '>'. It is case-insensitive.

    Generally the command is executed on the current cell, column or row. When cell range is indicated, the command is executed on the cells, columns or rows in the range.

    Following shows some of the command sequences and its actions.

    Command sequence<CLR>Good<DOWN>
    Action[Clear the current cell][Add 'Good' to the current cell][Move the current cell downward]
    The string 'Good' is entered and the entering position moves to next line.
    Used insampleScoring

    Command sequence+1<EVAL>
    Action[Add '+1' to the current cell][Evaluate the current cell]
    If previous cell value is '3', it is updated to '3+1'. And evaluated to '4'. If previous cell value is null, it is updated to '+1'. After evaluation, the cell value is '1'.
    Used insampleCounter

    Command sequence<GO A1><CLR><GO B1><CLR><GO C1><CLR>
    Action[Move to A1 cell][Clear the cell][Move to B1 cell][Clear the cell][Move to C1 cell][Clear the cell]
    The sequence clears leftmost 3 cells of the first line.
    Used insampleCounter2

    Command sequence<CLR>Start<RIGHT><CLR><NOW TIME><DOWN><LEFT>
    Action[Clear the cell][Add 'Start'][Move rightward][Clear the cell][Add time-now][Move downward][Move leftward]
    The sequence enters the string 'Start' and current time, then move to next line.
    Used insampleLogging

    Command sequence<GO RC3><CLR><LISTN Q1>
    Action[Move to RC3 cell][Clear the cell][Add an item selected from Q1 list]
    The sequence shows Q1 list and enters user selected number to the third cell of current line. The Q1 list should be decribed in same layout file.
    Used insampleQuestionnaire

    Command sequence<JNE A1 x><RIGHT><CLR>Same<LBL x>
    Action[Jump to label 'x', if the current cell value is not equal to the A1 cell value][Move rightward][Clear the cell][Add 'Same'][Set label 'x' here]
    If the current cell and A1 cell have same value, enter 'Same' into the rightward cell.
    Used insampleJump

    Command sequence<JLMT x 10><LBL x><CLR>AA<DOWN><JMP x>
    Action[Set jump-in Limit of label 'x' as 10][Set label 'x' here] [Clear the cell][Add 'AA' to the cell][Move downward][Jump to label 'x']
    The sequence enters 'AA' to the ten cells downward from the current cell.
    Used insampleJump

    Command sequenceIF(A1>0, "A1>0", "A1\<=0")<TYPE FRML>
    Action[Add string: 'IF(A1>0, "A1>0", "A1<=0")'][Change data type to formula]
    Describe IF expression in string and change it to formula. The string '\<' means that '<' is not the command but a normal charcter.
    Used in

    Calling JavaScript  

    By describing command <JS script> in the layout file, QESS calls the script described with JavaScript language. The script can be described directly, indirectly or in a variable. These examples are shown below.

    ButtonTextSinAddExecSum
    ButtonCommand<JS x=Qess.takeCellVal();y=Math.sin(x);Qess.putToCell(y);><JS script1><SETV @var1><RIGHT><JS @var1><JS sumScript>

    script1x=Qess.takeCellVal();
    Qess.right();
    y=Qess.takeCellVal();
    Qess.right();
    z=Number(x)+Number(y);
    Qess.appendToCell(z);
    sumScriptQess.range();
    range = Qess.takeRangeStr();
    Qess.rangeReset();
    Qess.right(); Qess.down();
    Qess.putToCell("=sum("+range+")");

    The script of [Sin] key is described directly in the ButtonCommand field. The script of [Add] key is described on another row indirectly. The script of [Exec] key is hold in the variable @var1. The [Sum] is another sample of indirect description, where an Excel formula is used from JavaScript.

    The sample layout file descibing the above table is included in the archive as 'sampleJavascript' (Select the initialization of sample files, if not found). The buttons mentioned above are displayed when 'sampleJavaScript' is selected as a layout file. The [Sin] key calculates the sine function of the current cell value. The [Add] key adds the current cell value and right neighbor cell value, and put the result to the next neighbor cell. The [Exec] key executes the script described in the current cell. For example, when 'Qess.putToCell(2+3)' is set into a cell, the cell value is replaced with '5' (the result of '2+3'). The [Sum] key calculates the grand total of the values in the range by using an Excel formula '=sum(range)'. If 'takeRangeStr()' in the script is replaced with 'takeRowStr()' or 'takeColStr()', the sum of rows or columns are obtained.

    The data type exchanging between JavaScript and QESS is basically string type. To execute a mathematical operation, convert the type to numerical by using 'Number()' as shown in script1.

    For the more practical JavaScript examples, the archive includes 'sampleRpnCalc' (Reverse Polish Notation Calculator) and 'sampleLogCalc' (Calculator holding a log).

    The script can include Return(CR,\n) codes. Insert CR codes, when the description is long. The full screen editing is recommended for the editing of the JavaScript code (The full screen editing is shown by long touch of the entry bar).

    Most commands of QESS can be called from JavaScript as 'Qess.xxx();'. Refer to the command list for detail. The Rhino is used for the JavaScript implementation. The function not supported in Rhino is not enable.

    If you want to define common functions, describe in the row of [CommandsAtLoading]. The example is shown in 'sampleLogCalc'.

    The callback from async processing (voice, qrcode, list, listn, listv, dialog、etc.) is not implemented in JavaScript. The next command runs without waiting for the async reply. The reply of the async processing is waited at the end of the script. Describe the async command as a QESS command directly (do not pass through JavaScript). For example, [<JS xxx><VOICE><JS x=Qess.takeCellVal(); xxx>) ]. Or terminate the script after async command and restart script. For example, [<JS xxx; Qess.voice()><JS x=Qess.takeCellVal();xxx>)].

    Dialog  

    For the conversational processing, three types of dialog are prepared. The 'dialog0' performs only confirmation. The 'dialog1' acquires a string input. The 'dialog2' receives Yes/No judgment. The below is the explanation of dialogs described in 'sampleJavaScript'.

    The 'Help' key is an example of 'dialog0'. The 'BMI' key acquires values by using 'dialog1' and 'dialog2', and shows the result by using 'dialog0'. The 'BMI' key is controlled by JavaScript.

    The content of the dialog is indicated by using a row of the layout file such as 'helpText'. The first column of the row is the key, the second column is the title, and the third column is the message. The content of the dialog can also be indicated by a string where the title and the message is concatenated with "&" mark (title&message) such as 'unitEntry'.

    ButtonTextHelpBMI
    ButtonCommand<DIALOG0 helpText><JS unitEntry><JS heightEntry><JS weightEntry><JS bmiCalc>

    helpTextUsageSin: calc sine function of the current cell value
    Add: add the current and right adjacent cell values
    Exec: exec the script described in the current cell
    BMI: calculate BMI (Body Math Index)
    These are samples of calling JavaScriptl."
    unitEntryQess.clr();
    unitMsg="Unit&Use metric system units (cm/kg)?"+String.fromCharCode(10)+"If no, use inch/pound.";
    Qess.dialog2(unitMsg);
    heightEntrymetric=Qess.takeCellVal();
    Qess.right();
    Qess.clr();
    heightMsg="Height&Enter your height";
    if(metric==1) heightMsg+="(cm)";
    else heightMsg+="(inch)";
    Qess.dialog1(heightMsg);
    weightEntryheight=Qess.takeCellVal();
    Qess.right();
    Qess.clr();
    weightMsg="Weight&Enter your weight";
    if(metric==1) weightMsg+="(kg)";
    else weightMsg+="(pound)";
    Qess.dialog1(weightMsg);
    bmiCalcweight=Qess.takeCellVal();
    Qess.right();
    Qess.clr();
    if(metric==1){
    height = 0.01*height;
    }else{
    height =0.0254 * height;
    weight=0.45359237 * weight;
    }
    bmi = weight/(height*height);
    bmi=bmi.toFixed(2);
    Qess.putToCell(bmi);
    cr=String.fromCharCode(10);
    bmiMsg="BMI&Your BMI is " + bmi + cr + "(Standard: 18.5-25)";
    Qess.dialog0(bmiMsg);

    Setting Cell Color  

    You can change the fill color and font color of cells from the menu.

    You can also change these by commands as follows. First example [FillPink] describes the color name PINK directly. Second example [FillReset] describes no color and sets the default color. The third example [FillPinkJs] uses the color name stored in the JavaScript variable. The color names are described in a section below.

    To change the font color, use FONTCOLOR instead of FILLCOLOR. The range selection is cleared after running the command. To continue the range selection, insert range save/restore commands(<RANGE SAVE>/<RANGE RESTORE>).

    ButtonTextFillPinkFillResetFillPinkJs
    ButtonCommand<FILLCOLOR PINK><FILLCOLOR><JS fillPink>
    fillPinkcolor="PINK"; Qess.fillColor("color");

    Setting Share  

    Following table shows the description of sample layout file 'sampleShare.xlsx'. If you cannot find this file, initialize settings by executing 'Menu»File Manager»Initialize Sample Files'.

    ButtonTextShareShare TranslateShareMedia Photo
    ButtonCommand<Share><Share Translate><Sharemedia Photo>
    #KeyDescriptionPackageNameClassName
    PhotoGoogle Photoscom.google...com.google...
    TranslateGoogle Translatecom.google...com.google...

    The command <Share> shows the candidates of destination and sends the text to the selected destination. The command <Share Key> sends the text to the destination specified by the key. When Key is omitted or null-string(""), the candidates are shown. The commands <Share Col Key><Share Row Key><Share Sheet Key> send the column / row / sheet text.

    If <Share> is substituted to <ShareMedia>, media files are sent.

    Above example describes 'select destination from candidates', 'send to Translate', and 'send media to Photos'. When the specified application is not installed, the error message is shown.

    If you want to add a share destination, long-touch a blank cell in layout edit mode and select the menu item "Set Share Destination". Then the texts are added like the bottom row of the above example. The first column is the key for identification, the second is the description, the third is the package name, and the fourth is the class name. Because the first and the second one are alterable, please change texts to a plain description. But the key (first one) should not include blank, and should not overlap with other layout keys or strings ("cell" / "col" / "row" / "sheet") . The key is case insensitive.

    Handling Troubles  

    In Android, the application memory might be cleared without the user termination. Thus the application saves the data to a file when the main screen is hidden, and it reloads the data when the screen is re-displayed.

    When abnormal termination is occurred, the application settings return to default values.

    When settings are confused, reset the application from the [menu»Settings»Reset settings]. And execute [menu»File Manager»Initialize sample files], if neccesary.

    The troubles about file exchange, refer the above file Section.


    Data  

    Following table shows the items of the option menu and the equivalent QESS command. The upper description of each row is the notation in the menu, and the lower is the QESS command. The option menu is displayed by touching the menu icon in the action bar. By long touching a cell or others, the context menu relating to the one is shown. QESS command is described in the layout file.

    Upper: Notation in Menu
    Lower: QESS Command
    Description
    Change Keypad
    <MENU ChangeKeypad>
    Change the keypad.
    Option Menu
    <MENU>
    MENU Show the following menu items.
    Data File
    »Open
    <MENU OpenData>
    Open existing data file.
    »New
    <MENU NewData>
    Create and open data file.
    »Save
    <MENU SaveData>
    Overwrite the editing data to the original file.
    »Save As
    <MENU SaveDataAs>
    Save the editing data as a new file having specified name and extension. Same data are automatically saved to the original file also.
    »Load via SQL Query
    <MENU LoadViaSql>
    Load data via SQL query.
    Layout File
    »Open
    <MENU OpenLayout>
    Open existing layout file
    »New
    <MENU NewLayout>
    This item is disabled. Copy similar file and open
    »Save
    <MENU SaveLayout>
    Overwrite the editing layout to the original file
    »Save As
    <MENU SaveLayoutAs>
    Save the editing layout as a new file having specified name and extension. Same data are automatically saved to the original file also.
    File Manager
    »Basic Operations
    <MENU OperateFile>
    Copy/rename/delete/share files and create sub-folders.
    »Export File
    <MENU ExportFile>
    Export the file to external storage area.
    »Import File
    <MENU ImportFile>
    Import the file from external storage area.
    »Backup
    <MENU Backup>
    Compress all files to a zip file in the specified folder.
    »Restore
    <MENU Restore>
    Uncompress all files from the specified zip file.
    »Delete External File
    <MENU DelExtFile>
    Delete specified files in the external storage.
    »Check Sample Files
    <MENU CheckSamples>
    Check the revision of data and layout sample files
    »Initialize Sample Files
    <MENU InitSamples>
    Reload data and layout sample files
    »Return To Previous Save
    <MENU ReturnToPrevSave>
    Recover the previous save. The count and interval of file history retention can be set in menu. The save is not executed periodically, but executed at hiding the main view (display other view, sleep, rotate view, and etc).
    Settings
    <MENU Settings>
    Show list of settings.
    - Layout Edit ModeMode for editing keypad layout
    (View)
    - Initial Zoom FactorInitial value of zooming for the cell table display.
    - Show Text Search/ReplaceShow the bar for text search and replacement.
    - Show Run-CommandsShow the bar to run commands directly without keypad entry.
    - Hide Layout IconHide the menu icon for layout change on action bar.
    - Image Thumbnail SizeSelect the thumnbnail size for the image media.
    - Show Entry Bar Below the SheetIf On, show the entry bar below the sheet. If Off, show the bar above the sheet.
    - Count of Left-side Frozen PanesCount of left-side frozen panes at freezing.
    - Count of Top-side Frozen PanesCount of top-side frozen panes at freezing.
    - Hide Text beside ThumbnailIf thumbnail of a media is shown, text expression of the media is hidden.
    - Dark ModeSwitch the dark mode (follow system setting, always on, always off).
    - Invert Keypad Colors in Dark ModeInvert Text and Background colors of keypad in dark mode.
    (Action)
    - Enter Key ActionIf On, go to right. If Off, go to down.
    - VibrationVibrate when touching keypad.
    - Enable Auto LinkIn full screen editor, create link to URL, Phone Number etc.
    - Max Interval Decided as Double TapWhen an item is tapped twice shorter than this interval, the double-tap action is executed. If double-tap is unnecessary, set the value to zero.
    (Text)
    - Charset At Reading Data TextCharacter set at reading data text(csv, tsv and txt) file (default is 'auto detection').
    - Charset At Writing Data TextCharacter set at writing data text(csv, tsv and txt) file (default is 'same as read').
    - Charset At Reading Layout TextCharacter set at reading layout text(csv, tsv and txt) file (default is 'auto detection').
    - Charset At Writing Layout TextCharacter set at writing layout text(csv, tsv and txt) file (default is 'same as read').
    - Clipboard Text FormFormat of clipboard text(csv,tsv,txt)
    - Separator in .txtCell separator in TXT text file is indicated between '[' and ']'. Space is ' ', Tab is '\t'. If adding '+' at tail, ignore successive same characters. Default '[ ]+' means that successive spaces are ignored and spaces shrink to one separator.
    - Separator in .csvCell separator in CSV text file is indicated between '[' and ']'. Default is '[,]'.
    - Separator in .tsvCell separator in TSV text file is indicated between '[' and ']'. Default is '[\t]'.
    - Treat Shared Text Data Without ProcessingIf On, the text received from 'Share' is inserted to one cell. If Off, the text is parsed with clipboard format and the result is inserted to cells.
    (Cell)
    - Number of Decimal Places in Cell ViewNumber of digits to display after the decimal point in Cell View. Applied to numeric and formula cells.
    - Cell Font SizeCell text font size (common value for all cells).
    - Initial Row CountInitial number of rows to show (not reflected to data file).
    - Initial Column CountInitial number of columns to show (not reflected to data file).
    - Enable Auto Cell HeightIf On, the cell height is expanded automatically depending on the content.
    - Auto Cell Height MaxThe expansion limit value of the auto cell height.
    - Entry Field Font SizeEntry field text font size (not reflected to data file).
    (Format)
    - Date FormatFormatting string defined in Java SimpleDateFormat.
    - Time FormatFormatting string defined in Java SimpleDateFormat.
    - DateTime FormatFormatting string defined in Java SimpleDateFormat.
    - UserDef1 FormatFormatting string defined in Excel.
    - UserDef2 FormatFormatting string defined in Excel.
    (Text-to-Speech TTS)
    - TTS System Settings Settings of Text-to-speach(TTS) in Android system menu.
    - Silent Time Between ColumnsTTS silent Period (msec) inserted at changing column.
    - Silent Time Between RowsTTS silent Period (msec) inserted at changing row.
    - Priority Direction of SpeechIf On, speech the range in vertical direction. If Off, horizontal direction.
    -(File History)
    - Count of History FilesThe Count of files saved to reserve the previous data.
    - Minimum History IntervalTime interval between the history files.
    (Reset)
    - Reset QESS SettingsReset all QESS settings.
    Cell
    »Specify Range
    <MENU RangeCell>
    Start to specify the range covering cells. If started, fix the current range as alt-range(*1).
    »Copy
    <MENU CopyCell>
    Fix the current range as the alt-range(*1). The alt-range is used for the source-range of paste. And copy the text in the range to clipboard.
    »Cut
    <MENU CutCell>
    Fix the current range as the alt-range(*1). The alt-range is used for the source-range of paste. And copy the text in the range to clipboard. The text in the source-range is cleared at paste.
    »Paste
    <MENU PasteCell>
    If the source-range (cells in dotted frame) exists, paste the data in the source-range. If not, paste text from clipboard.
    »Copy Reference
    <MENU CopyRefCell>
    Copy the string expressing the current cell or the cell range (e.g., 'A1' or 'A1:B2') to the clipboard.
    »Input Formula
    <MENU InputFormula>
    Show the formula input screen. Refer Input Support Screens for the detail.
    »Input Series Data
    <MENU InputSeries>
    Show the series data input screen. Refer Input Support Screens for the detail.
    »Share
    <MENU ShareCell>
    Send the text in the cell range to other application by using 'Share' function.
    »Share(Media)
    <MENU ShareMediaCell>
    Send the media files linked in the range to other application by using 'Share' function.
    »Set Share Destination
    -
    Enabled in the layout edit mode only. Add share destination to the layout file.
    »Type and Format
    <MENU DataTypeCell>
    Change data type and display format of the cell.
    »Clear
    <MENU ClearCell>
    Clear the text in the current cell or cells in the range.
    »Speak
    <MENU SpeakCell>
    Speak out the text in the current cell or cells in the range.
    »Resize Cell
    <MENU ResizeCell>
    Show seek bars to change width and height of the cell or cells in the range.
    »Freeze Up&Left-side Panes
    <MENU FreezeUpLeft>
    Freeze left-side and up-side panes of current cell.
    »Full Screen Edit
    <MENU FullScreenEdit>
    Edit the cell text on full screen editor
    »Fill Color
    <MENU FillColorCell>
    Change the fill color of the current cell or cells in the range (Basic colors only).
    »Font
    <MENU FontCell>
    Change the font properties of the current cell or cells in the range (Basic only).
    »Text Alignment
    <MENU TextAlignCell>
    Change the text alignment(e.g., Right, Bottom) of the current cell or cells in the range (Basic alignments only).
    »Border
    <MENU BorderCell>
    Change borders of the current cell or cells in the range (Basic colors and line-types only).
    »Web Search
    <MENU WebSearchCell>
    Search Web with the content of the current cell.
    »Generate QR Code
    <MENU GenerateQrCell>
    The text in the range is encoded as the clipboard text format (Default:TSV). And the QR code for the text is created.
    »Capture QR Code
    <MENU CaptureQRCell>
    Recognize the QR code as the clipboard text format (Default:TSV), and assign to the current cell/range.
    »Capture Photo
    <MENU CapturePhotoCell>
    Capture photo from camera and set thumbnail image to the current cell. if thumbnail off, set the file name.
    »Capture Video
    <MENU CaptureVideoCell>
    Capture video from camera and set thumbnail image to the current cell. if thumbnail off, set the file name.
    »Capture Audio
    <MENU CaptureAudioCell>
    Capture audio from mic and set the name to the current cell.
    »Capture Media File
    <MENU CaptureFileCell>
    Capture a specified media file and set the name to the current cell.
    »Paste Captued Media
    <MENU PasteMediaCell>
    Paste a captured media file to the current cell.
    »Rename Media
    <MENU RenameMediaCell>
    Rename the media file in the current cell.
    »Draw Graph
    <MENU DrawGraphCell>
    Draw line chart and others. Execute after 'specify range'.
    »SQL Query
    <MENU SqlQueryCell>
    Show SQL Query screen.
    »Hand-write
    <MENU HandWriteCell>
    Start hand-writing input.
    »Print
    <MENU PrintCell>
    Print specified cell/cell range.
    »Run Commands
    <MENU RunCmdCell>
    Run commands directly without keypad entry.
    Column
    »Specify Range
    <MENU RangeColumn>
    Start to specify the range covering columns. If started, fix the current range as alt-range(*1). The range is cancelled with Back key.
    »Copy
    <MENU CopyColumn>
    Fix the current range as the alt-range(*1). The alt-range is used for the source-range of paste. And copy the text in the range to clipboard.
    »Cut
    <MENU CutColumn>
    Fix the current range as the alt-range(*1). The alt-range is used for the source-range of paste. And copy the text in the range to clipboard. The text in the source-range is cleared at paste.
    »Paste
    <MENU PasteColumn>
    If the source-range (cells in dotted frame) exists, paste the text in the source-range. If not, paste text from clipboard.
    »Copy Reference
    <MENU CopyRefColumn>
    Copy the string expressing the current column or the column range (e.g., 'A' or 'A:B') to the clipboard.
    »Share
    <MENU ShareColumn>
    Send the text in the columns of the range to other application by using 'Share' function.
    »Share(Media)
    <MENU ShareMediaColumn>
    Send the media files linked in the range to other application by using 'Share' function.
    »Type and Format
    <MENU DataTypeColumn>
    Change data type and display format 0f cells in the column or columns in the range.
    »Hide
    <MENU HideColumn>
    Hide the current column. If the range exists, hide the columns in the range.
    »Unhide
    <MENU UnhideColumn>
    Unhide the columns adjacent to current column. If the range exists, unhide the columns in the range.
    »Clear
    <MENU ClearColumn>
    Clear the text in the current column or columns in the range.
    »Speak
    <MENU SpeakColumn>
    Speak out the text in the current column or columns in the range.
    »Resize Column Width
    <MENU WidthColumn>
    Show seek bar to change width of the column or columns in the range (Also the double tapping of the column header shows the bar).
    »Freeze Left-side Panes
    <MENU FreezeLeft>
    Freeze left-side panes of current cell.
    »Insert
    <MENU InsertColumn>
    Insert a column to the left of current column or columns in the range.
    »Delete
    <MENU DeleteColumn>
    Delete the current column or columns in the range.
    »Fill Color
    <MENU FillColorColumn>
    Change the fill color of the current column or columns in the range (Basic colors only).
    »Font
    <MENU FontColumn>
    Change the font properties of the current column or columns in the range (Basic only).
    »Text Alignment
    <MENU TextAlignColumn>
    Change the text alignment(e.g., Right, Bottom) of the current column or columns in the range (Basic alignments only).
    »Border
    <MENU BorderColumn>
    Change borders of the current column or columns in the range (Basic colors and line-types only).
    »Generate QR Code
    <MENU GenerateQrColumn>
    The text in the range is encoded as the clipboard text format (Default:TSV). And the QR code for the text is created.
    »SQL Query
    <MENU SqlQueryColumn>
    Show SQL Query screen.
    »Print
    <MENU PrintColumn>
    Print specified column/column-Range.
    »Run Commands
    <MENU RunCmdColumn>
    Run commands directly without keypad entry.
    Row
    »Specify Range
    <MENU RangeRow>
    Start to specify the range covering rows. If started, fix the current range as alt-range(*1). The range is cancelled with Back key.
    »Copy
    <MENU CopyRow>
    Fix the current range as the alt-range(*1). The alt-range is used for the source-range of paste. And copy the text in the range to clipboard.
    »Cut
    <MENU CutRow>
    Fix the current range as the alt-range(*1). The alt-range is used for the source-range of paste. And copy the text in the range to clipboard. The text in the source-range is cleared at paste.
    »Paste
    <MENU PasteRow>
    If the source-range (cells in dotted frame) exists, paste the text in the source-range. If not, paste text from clipboard.
    »Copy Reference
    <MENU CopyRefRow>
    Copy the string expressing the current row or the row range (e.g., '1' or '1:2') to the clipboard.
    »Share
    <MENU ShareRow>
    Send the text in the rows of the range to other application by using 'Share' function.
    »Share(Media)
    <MENU ShareMediaRow>
    Send the media files linked in the range to other application by using 'Share' function.
    »Type and Format
    <MENU DataTypeRow>
    Change data type and display format of the cells in the row or rows in the range.
    »Hide
    <MENU HideRow>
    Hide the current row. If the range exists, hide the rows in the range.
    »Unhide
    <MENU UnhideRow>
    Unhide the rows adjacent to current row. If the range exists, unhide the rows in the range.
    »Clear
    <MENU ClearRow>
    Clear the text in the current row or rows in the range.
    »Speak
    <MENU SpeakRow>
    Speak out the text in the current row or rows in the range.
    »Resize Row Height
    <MENU HeightRow>
    Show seek bar to change height of the column or columns in the range (Also the double tapping of the row header shows the bar).
    »Freeze Up-side Panes
    <MENU FreezeUp>
    Freeze up-side panes of current cell.
    »Insert
    <MENU InsertRow>
    Insert a row to the above of current row or rows in the range.
    »Delete
    <MENU DeleteRow>
    Delete the current row or rows in the range.
    »Fill Color
    <MENU FillColorRow>
    Change the fill color of the current row or rows in the range (Basic colors only).
    »Font
    <MENU FontRow>
    Change the font properties of the current row or rows in the range (Basic only).
    »Text Alignment
    <MENU TextAlignRow>
    Change the text alignment(e.g., Right, Bottom) of the current row or rows in the range (Basic alignments only).
    »Border
    <BorderRow>
    Change borders of the current row or rows in the range (Basic colors and line-types only).
    »Generate QR Code
    <GenerateQrRow>
    The text in the range is encoded as the clipboard text format (Default:TSV). And the QR code for the text is created.
    »SQL Query
    <SqlQueryRow>
    Show SQL Query screen.
    »Print
    <PrintRow>
    Print specified row/row-Range.
    »Run Commands
    <RunCmdRow>
    Run commands directly without keypad entry.
    Sheet
    »Copy
    <CopySheet>
    Fix the current range as the alt-range(*1). The alt-range is used for the source-range of paste. And copy the text in the range to clipboard.
    »Cut
    <CutSheet>
    Fix the current range as the alt-range(*1). The alt-range is used for the source-range of paste. And copy the text in the range to clipboard. The text in the source-range is cleared at paste.
    »Paste
    <PasteSheet>
    If the source-range (cells in dotted frame) exists, paste the text in the source-range. If not, paste text from clipboard.
    »Share
    <ShareSheet>
    Send the text in the current sheet to other application by using 'Share' function.
    »Share(Media)
    <MENU ShareMediaSheet>
    Send the media files linked in the range to other application by using 'Share' function.
    »Clear
    <ClearSheet>
    Clear the text in the current sheet.
    »Speak
    <SpeakSheet>
    Speak out the text in the current sheet.
    »Type and Format
    <DataTypeSheet>
    Change data type and display format of cells in the sheet.
    »Unfreeze
    <Unfreeze>
    Unfreeze frozen panes.
    »Select Display Sheet
    <SelectSheet>
    Select the sheet to display from the list of sheets.
    »Add New Sheet
    <AddSheet>
    Add new sheet to the end of the book.
    »Clone Current Sheet
    <CloneSheet>
    Clone the current sheet and add it to the end of the book.
    »Delete Current Sheet
    <DeleteSheet>
    Delete the current sheet. If no sheet exists, create a sheet.
    »Rename Current Sheet
    <RenameSheet>
    Change the name of the current sheet.
    »Fill Color
    <FillColorSheet>
    Change the fill color of the current Sheet (Basic colors only).
    »Font
    <FontSheet>
    Change the font properties of the current Sheet (Basic only).
    »Text Alignment
    <TextAlignSheet>
    Change the text alignment(e.g., Right, Bottom) of the the current Sheet (Basic alignments only).
    »Border
    <BorderSheet>
    Change borders of the current sheet (Basic colors and line-types only).
    »Generate QR Code
    <GenerateQrSheet>
    The text in the range is encoded as the clipboard text format (Default:TSV). And the QR code for the text is created.
    »Sort Rows
    <SortRows>
    Sort rows in the current sheet by designating the sort order and key. Numeric values are distinguished from others(string, formula, etc). Cell reference descriptions are not modified.
    »Search/Replace Text
    <SearchReplace>
    Show bar for text search and replace.
    »SQL Query
    <SqlQuerySheet>
    Show SQL Query screen.
    »Print
    <PrintSheet>
    Print current sheet.
    »Run Commands
    <RunCmdSheet>
    Run commands directly without keypad entry.
    Help Documents
    »Simple How-To
    <ShowHowTo>
    Show simple how-to document.
    »How To Start
    <ShowHowToStart>
    Show how-to-start document.
    »Help
    <ShowHelp>
    Show this document.
    Version
    <ShowVersion>
    Show version.

    List of Commands / JavaScript Functions  

    The upper description of the each row is QESS commands usable in the layout file. The QESS command is case in-sensitive (upper and lower case letter is same). The lower description is the equivalent function usable in the JavaScript. The function is case sensitive (upper and lower case letter is different).

    Upper: QESS Command
    Lower: JavaScript Function
    Description
    string
    -
    Add string(*2) to the current cell.
    <!string>
    //string
    Comment (ignore the description)
    <UP>
    Qess.up()
    Move the current cell upword.
    <DOWN>
    Qess.down()
    Move the current cell downward.
    <LEFT>
    Qess.left()
    Move the current cell leftward.
    <RIGHT>
    Qess.right()
    Move the current cell rightward.
    <CLR>
    Qess.clr()
    Clear the current cell or cells in the range.
    <BS>
    Qess.bs()
    Remove a character from the string tail.
    <GO sheet!ref>
    Qess.go("sheet!ref")
    Move the current cell to the cell refered as 'ref'(*3) in the sheet 'sheet'. (e.g. <GO Sheet2!C3> goes to C3 cell in the sheet of name [Sheet2]. <GO #1!B2> goes to B2 cell in the sheet of number [1] ). 'sheet!'or 'ref' can be omitted (e.g. <GO C3>, <GO Sheet2!>, <GO #1!> ).
    <GO BACK>
    Qess.goBack()
    Return to the previous current cell (only one step).
    <EVAL>
    Qess.eval("ref")
    Evaluate as an arithmetic expression(*4).
    <COPY>
    Qess.copy()
    Copy
    <COPY ROW>
    Qess.copyRow()
    Copy from the current row or row range.
    <COPY COL>
    Qess.copyCol()
    Copy from the current column or column range.
    <COPY SHEET>
    Qess.copySheet()
    Copy from the current sheet.
    <CUT>
    Qess.cut()
    Cut
    <CUT ROW>
    Qess.cutRow()
    Cut from the current row or row range.
    <CUT COL>
    Qess.cutCol()
    Cut from the current column or column range.
    <CUT SHEET>
    Qess.cutSheet()
    Cut from the current sheet.
    <PASTE>
    Qess.paste()
    Paste
    <PASTE ROW>
    Qess.pasteRow()
    Paste to the current row or row range.
    <PASTE COL>
    Qess.pasteCol()
    Paste to the current column or column range.
    <PASTE SHEET>
    Qess.pasteSheet()
    Paste to the current sheet.
    <HIDE ROW>
    Qess.hideRow()
    Hide the current row.
    <HIDE COL>
    Qess.hideCol()
    Hide the current column.
    <UNHIDE ROW>
    Qess.unHideRow()
    Unhide the rows adjacent to the current row.
    <UNHIDE COL>
    Qess.unHideCol()
    Unhide the columns adjacent to the current column.
    <INS ROW>
    Qess.insRow()
    Insert a row.
    <INS COL>
    Qess.insCol()
    Insert a column.
    <DEL ROW>
    Qess.delRow()
    Delete the current row.
    <DEL COL>
    Qess.delCol()
    Delete the current column.
    <CLR ROW>
    Qess.clrRow()
    Clear the current row or rows in the range.
    <CLR COL>
    Qess.clrCol()
    Clear the current column or columns in the range.
    <CLR SHEET>
    Qess.clrSheet()
    Clear the current sheet.
    <LIST list>
    Qess.list("list")
    Add the string selected from the "list"(*5). The response of JS action is delayed(*6).
    <LISTN list>
    Qess.listn("list")
    Add the index number selected from the "list"(*5). The response of JS action is delayed(*6).
    <LISTV list1 list2>
    Qess.listv("list1","list2")
    Shows the "list1"(*5). The item of And add the string in the "list2"(*5) having the same index number as selected. The response of JS action is delayed(*6).
    <PAREN>
    Qess.paren()
    Count opening/closing parentheses, and when mismatched, insert these at the head/tail of the string. It acts on the string type. If you want to enclose the string with parentheses, add closing parenthesis and execute this command as ') <PAREN>'.
    <TYPE type>
    Qess.type(type)
    Change data type to "type"(*7). "type"=STR,STRING,NUM,NUMERIC,FRML,FORMULA,DATE,TIME,DATETIME,USERDEF1,USERDEF2
    <NOW DATE>
    Qess.nowDate()
    Add the date string to the current cell(*8).
    <NOW TIME>
    Qess.nowTime()
    Add the time string to the current cell(*8).
    <NOW DATETIME>
    Qess.nowDateTime()
    Add the date and time string to the current cell(*8).
    <NOW RAW>
    Qess.nowRaw()
    Add the Excel numeric expressing now to the current cell(*8).
    <RANGE>
    Qess.range()
    Start cell range selection. If any range selection has been started, fix the range as alt-range(*1).
    <RANGE COL>
    Qess.rangeCol()
    Start column range selection. If any range selection has been started, fix the range as alt-range(*1).
    <RANGE ROW>
    Qess.rangeRow()
    Start row range selection. If any range selection has been started, fix the range as alt-range(*1).
    <RANGE RESET>
    Qess.rangeReset()
    Reset range selection.
    <RANGE SAVE>
    Qess.rangeSave()
    Save the current range.
    <RANGE RESTORE>
    Qess.rangeRestore()
    Restore the saved range.
    <SETV var>
    Qess.setV("var")
    Assign the current cell value to the variable var(*9).
    <SETR var>
    Qess.setR("var")
    Assign the reference(*10) to the variable var(*9).
    <SETRR var>
    Qess.setRR("var")
    Assign the row reference to the variable var(*9).
    <SETRC var>
    Qess.setRC("var")
    Assign the column reference to the variable var(*9).
    <SETRS var>
    Qess.setRS("var")
    Assign the single cell reference to the variable var.
    <GET var>
    Qess.get("var")
    Get the value of the variable var(*9) and add to current cell. Refer Qess.putToCell/Qess.appendToCell.
    <VOICE>
    Qess.voice()
    Add voice recognition string to the current cell. The response of JS action is delayed(*6).
    <QRCODE>
    Qess.qrcode()
    Recognize the QR code as the clipboard text format (Default:TSV), and assign to the current cell/range. The response of JS action is delayed(*6). Can also write as <QRCODE IN>/Qess.qrcodeIn().
    <QRCODE OUT>
    Qess.qrcodeOut()
    Convert the text of the current cell/range to the clipboard text format (Default:TSV), and generate the QR code.
    <WEB>
    Qess.web()
    Search Web with the content of the current cell.
    <CAPT PHOTO>
    Capture photo from camera.
    <CAPT VIDEO>
    Capture video from camera.
    <CAPT AUDIO>
    Capture audio from mic.
    <CAPT FILE>
    Capture media from file.
    <SHARE key>
    Qess.share("key")
    Share the text in the current cell or cells in the range. The key is the destination specified in the layout file. If key is omitted or is null-string(""), the candidates are shown.
    <SHARE ROW key>
    Qess.shareRow("key")
    Share the text in the current row or rows in the range. The key is same as above.
    <SHARE COL key>
    Qess.shareCol("key")
    Share the text in the current column or columns in the range. The key is same as above.
    <SHARE SHEET key>
    Qess.shareSheet("key")
    Share the text in the current sheet. The key is same as above.
    <SHARE key>
    Qess.shareMedia("key")
    Share the media files linked in the current cell or cells in the range. The key is same as above.
    <SHARE ROW key>
    Qess.shareMediaRow("key")
    Share the media files linked in the current row or rows in the range. The key is same as above.
    <SHARE COL key>
    Qess.shareMediaCol("key")
    Share the media files linked in the current column or columns in the range. The key is same as above.
    <SHARE SHEET key>
    Qess.shareMediaSheet("key")
    Share the media files linked in the current sheet. The key is same as above.
    <SPEAK>
    Qess.speakRow()
    Speak out the text in the current cell or cells in the range.
    <SPEAK ROW>
    Qess.speakRow()
    Speak out the text in the current row or rows in the range.
    <SPEAK COL>
    Qess.speakCol()
    Speak out the text in the current column or columns in the range.
    <SPEAK SHEET>
    Qess.speakSheet()
    Speak out the text in the current sheet.
    <DIALOG0 text>
    Qess.dialog0("text")
    Display a dialog having OK button. The title and message is indicated by text(*12). The response of JS action is delayed(*6).
    <DIALOG1 text>
    Qess.dialog1("text")
    Display a dialog for string entry. The title and message is indicated by text(*12). The result is added to the current cell. The response of JS action is delayed(*6).
    <DIALOG2 text>
    Qess.dialog2("text")
    Display a dialog for Yes/No entry. The title and message is indicated by text(*12). The result is added to the current cell. The response of JS action is delayed(*6).
    -
    requestId = Qess.dialog1x("text")
    Display a dialog for string entry. The title and message is indicated by text(*12). The result is received by getResponse(). The response is delayed(*6).
    -
    requestId = Qess.dialog2x("text")
    Display a dialog for Yes/No entry. The title and message is indicated by text(*12). The result is received by getResponse(). The response is delayed(*6).
    -
    response = Qess.getResponse(requestId)
    Get the response of dialog1x or dialog2x. When the response is not yet received, return null.
    <FILLCOLOR color>
    Qess.fillColor("color");
    Set the fill color of the range to color(*13)
    <FONTCOLOR color>
    Qess.fontColor("color");
    Set font color of the range to color(*13)
    <TEXTALIGN H V>
    Qess.textAlign("H", "V");
    Set horizontal and vertical text alignment of the range to H ( N=No Change, G=General, L=Left, C=Center, R=Right) and V (N=No Change, T=Top, C=Center, B=Bottom ).
    (e.g., Command: <TEXTALIGN R B> or JsFunction: Qess.textAlign("R", "B"); ).
    <JS script>
    Qess.js("script")
    Execute the JavaScript script(*14)
    -
    var=Qess.takeCellVal()
    Acquire the current cell value and assign it to the variable var.
    -
    Qess.putToCell(expr)
    Evaluate the expression expr and assign the result to the current cell (overwrite).
    -
    Qess.appendToCell(expr)
    Evaluate the expression expr and add the result to the current cell (concatenate).
    -
    str=Qess.takeRangeStr()
    Acquire string representing the cell-range and assign it to the variable str(*15).
    -
    str=Qess.takeRowStr()
    Acquire string representing the row-range and assign it to the variable str(*15).
    -
    str=Qess.takeColStr()
    Acquire string representing the column-range and assign it to the variable str(*15).
    -
    str=Qess.takeCellStr()
    Acquire string representing the single cell and assign it to the variable str(*15).
    -
    array=Qess.rangeStrToArray(str)
    Convert range specification string from the A1 form to the array form(*16).
    -
    str=Qess.rangeArrayToStr(array)
    convert range specification string from the array form to the A1 form(*16).
    -
    Qess.q2j("@var", "varJ")
    Copy the value of the QESS variable @var to the JavaScript variable varJ.
    -
    Qess.j2q("varJ", "@var")
    Copy the value of the JavaScript variable varJ to the QESS variable @var.
    <HANDWRITE>
    Qess.handWrite();
    Start hand-writing input.
    <SAVE>
    Qess.save();
    Overwrite data and layout to the original files
    <OPEN DATA filename>
    Qess.open("DATA", "filename");
    Open a file filename in the data folder as the data sheet.
    <OPEN LAYOUT filename>
    Qess.open("LAYOUT", "filename");
    Open a file filename in the layout folder as the layout sheet.

    Use the following commands when you want to implement conditional/loop processing. The processing should be limited to short time to avoid the influence to UI. The processing can be implemented by using the command <JS script> mentioned above. The JavaScript description might have higher readability, but it does not support the async processing.

    <JMP label>Jump to the label(*18) which is descibed in the command sequence
    <JGT ref label>Jump to the label, when the current cell value is Greater Than the ref cell.
    <JLT ref label>Jump to the label, when the current cell value is Less Than the ref cell.
    <JEQ ref label>Jump to the label, when the current cell value is EQual to the ref cell.
    <JNE ref label>Jump to the label, when the current cell value is Not Equal to the ref cell.
    <JGE ref label>Jump to the label, when the current cell value is Greater or Equal to the ref cell.
    <JLE ref label>Jump to the label, when the current cell value is Less or Equal to the ref cell.
    <LBL label>Set the label position in the command sequence
    <JLMT label count>Set jump limit count(*19) to the label.
    <JLMT label>Get jump limit count and add to the current cell.
  • *1 The alt-range is used, when the references of source and destination are needed in some operations. The alt-range is displayed with dotted frame.
  • *2 Descibe the new-line character as '\n', tab-character as '\t', and the character '<' as '\<'.
  • *3 The value of 'ref' is Cell Reference described as A1 format or R1C1 format.
  • *4 The arithmetic expression permits arithmetic operators, parenthesis and cell reference.
  • *5 The value of 'list' is the key of the list described in the layout file same as commands (The first column is the key, the second column is the title. The third and following columns are items to be selected). If the command is LIST, the string selected from the list is added to the current cell. If the command is LISTN, the index number (start from zero) of selected item is added to the current cell. If the command is LISTV, the list1(name list) is shown, and the string in the list2(value list) having the selected index number is added to the current cell.
  • *6 When the function is called from JavaScript, the script does not wait the response and proceeds to the next step. The response is waited at the end of the script. To receive the result, end the request script and start the receive script. Refer Calling JavaScript for details. On the other hand, the QESS command waits and receives the response, then proceeds to the next step.
  • *7 The value of 'type' is one of the following strings: STR, STRING, NUM, NUMERIC, FRML, FORMULA, DATE, TIME, DATETIME, USERDEF1, USERDEF2. STR/STRING means string type. NUM/NUMERIC means numeric. FRML/FORMULA means Excel formula. DATE/TIME/DATETIME/USERDEF1/USERDEF2 means the format indicated in the menu.
  • *8 The string for the date/time is made up with [settings»Date Format] and other format. The format is specified in [SimpleDateFormat] in Java. If 'RAW', add a numeric value corresponding at now.
  • *9 The string started with '@' (e.g. @var) is defined as a QESS variable. If string without '@' is described at the variable position, it is defined as a JavaScript variable The command 'SETV' and 'SETR/SETRR/SETRC' assign a value or a reference to the variable. The command 'GET' acquires the value of the variable and enters it to the current cell. In the JavaScript description, the variable should be a string and the variable name should be double-quotated("). The QESS variables can be used for ref, label, count and list.
  • *10 The reference used in <SETR> is A1 format string to refer a cell('A1') or range('A1:B2'). If a range is active, assign the range reference. If a range is not active but an alt-range is active, assign the alt-range reference. If the range and alt-range are not active, assign the current cell reference. The command <SETRR> sets the row reference of the cell('1') or the range('1:2'). The command <SETRC> sets the column reference of the cell('A') or the range('A:B').
  • *12 The parameter 'text' is the key of the text row describing the title and the message of the dialog in the layout file. In the text row, the first column is the key, the second and third columns are the title and message of the dialog. When the text row having the key is not found, the 'text' itself is displayed (When the text is 'AAA&BBB', the string 'AAA' is the title, and the string 'BBB' is the message).
  • *13 The 'color' is indicated as the string of the color name (case-insensitive exact-match string included in the following list). If the string is not included in the list, the 'color' is assumed as a variable (QESS variable or JS variable) storing the color name. If not matched, the default value (AUTOMATIC) is used.
    [color name list: AQUA, AUTOMATIC, BLACK, BLUE, BLUE_GREY, BRIGHT_GREEN, BROWN, CORAL, CORNFLOWER_BLUE, DARK_BLUE, DARK_GREEN, DARK_RED, DARK_TEAL, DARK_YELLOW, GOLD, GREEN, GREY_25_PERCENT, GREY_40_PERCENT, GREY_50_PERCENT, GREY_80_PERCENT, INDIGO, LAVENDER, LEMON_CHIFFON, LIGHT_BLUE, LIGHT_CORNFLOWER_BLUE, LIGHT_GREEN, LIGHT_ORANGE, LIGHT_TURQUOISE, LIGHT_YELLOW, LIME, MAROON, OLIVE_GREEN, ORANGE, ORCHID, PALE_BLUE, PINK, PLUM, RED, ROSE, ROYAL_BLUE, SEA_GREEN, SKY_BLUE, TAN, TEAL, TURQUOISE, VIOLET, WHITE, YELLOW].
  • *14 If the 'script' is a QESS variable (e.g., @var), the content of the variable is executed as the JavaScript code. If the 'script' is the key pointing a row, the JavaScript code in the row is executed. In this case, the first column of the row is the key and second column is the JavaScript cord. Otherwise, the 'script' string is executed directly.
  • *15 It is acquired in the A1 form. If the range is set, the reference of the range is acquired. If no range is set, and alt-range is set, the reference of the alt-range is acquired. If no range and no alt-range are set, the reference of the current cell is acquired.
  • *16 The array has four elements [firstColumnNo, firstRowNo, lastColumnNo, lastRowNo]. Examples of conversion between the A1 form and the array is as follows: A2:C4⇔[1,2,3,4]、A:C⇔[1,0,3,0]、2:4⇔[0,2,0,4]、A2⇔[1,2,0,0]、A⇔[1,0,0,0]、2⇔[0,2,0,0]
  • *18 The value of 'label' is the arbitrary string to identify a position in the command sequence. When [<JMP label>] is found in a command sequence, the next processing point is jumped to the [<LBL label>]. Other jump commands such as [<JGT ref label>] depend on the comparison between the current cell and 'ref' cell.
  • *19 The jump limit count is decremented when the process jumps into the label. If the value is reached to zero, the jump command is ignored. When the limit is not set, jump count is infinite.
  • Support  

    Following web page has been prepared. It includes this HELP and FAQ. Use it for browsing in PC.
     https://qess-free.web.app/en/
    (The description of this page is shared with QESS-pro and QESS-std.)

    Please send questions, requests and bug reports to the following mail address.
     watanaby00@yahoo.co.jp

    When file attach is needed, we prefer the file of TXT/CSV/TSV/PNG/JPG/PDF.

    ChangeLog  

  • 2017/06/15 Version 1.0.0 is released.
  • 2017/06/23 Version 1.1.0 Added the character set selection for the text (CSV, TSV, TXT) file. The character set (character encoding) can be selected automatically or manually.
  • 2017/06/26 Version 1.2.0 Eliminated the functional difference between the Free and Pro versions. The Free version can access the shared storage. The Pro version is not changed.
  • 2017/07/06 Version 1.2.1 Fixed bugs about saving layout files and showing dialog.
  • 2017/07/14 Version 1.3.0 is released. Added input by using voice recognition, QRcode/barcode recognition, and location detection. Added a sample file to try these methods. To use added sample file, select 'Reload Samples' in menu. Fixed several small bugs.
  • 2017/07/15 Version 1.3.1 Added the setting of initial spread sheet size. Adjusted the current cell position in the screen.
  • 2017/07/19 Version 1.3.2 Added the function of Web search. The content of the current cell is searched with Google. The Web page can be searched from QRcode result URL, and the map can be searched from the locations (latitude,longitude). To use modified sample file, select 'Reload Samples' in menu. Fixed several small bugs.
  • 2017/07/23 Version 1.3.3 Added microphone icon in the main screen. Modified code for location search. Modified code for QRcode reading.
  • 2017/07/28 Version 1.3.4 Modified the display form of numeric value. Fixed bugs on deletion/insertion of rows/columns. Fixed bugs on QRcode input. Modified the display form of numeric value. Fixed a few small bugs.
  • 2017/08/01 Version 1.3.5 Modified the processing of location search.
  • 2017/08/07 Version 1.3.6 Modified the start code of the full-screen edit. Added a dialog which explains the condition of 'Save as'. Added the file extension spinner of creating new file.
  • 2017/08/17 Version 1.3.7 Added option menu items 'Copy Row', 'Paste Row', 'Copy Column' and 'Paste Column'. Changed the application name displayed in the header to 'QESS'. Changed the color indicating the cell range. Added the seek bar to resize the row height in addition to the column width. Removed the limitation of line count shown in a cell. Added the format check of strings for color code and date/time format. Fixed an error of the reading/writing text file after swtiching the system language. Fixed a few small bugs.
  • 2017/08/25 Version 1.4.0 Changed the text search scope from a row/column to a sheet. Added the receiver function of text 'Share'. QESS can receive the text sent from 'Share' menu of other applications. Fixed an error of the text parsing at insufficiency columns.
  • 2017/08/27 Version 1.4.1 Added the sender function of text 'Share'. QESS can send the text from 'Share' menu. Fixed a few small bugs.
  • 2017/09/03 Version 1.4.2 Fixed a bug at resizing cell.
  • 2017/09/06 Version 1.5.0 Added the 'Text To Speech (TTS)' function. Added a sample layout file 'nullKeypad.csv' which shows no keypad. Replaced a key from 'Clear' to 'Speak' in 'sampleMultimodal.csv' . Added the message to warn the file creation with existing file name. Added scroll view in full screen edit mode. Fixed a few small bugs.
  • 2017/09/07 Version 1.5.1 Revised the display of the cell which has been set the date/time format in other applications.
  • 2017/09/07 Version 1.5.2 Fixed a bug in the revision of Version 1.5.1.
  • 2017/09/17 Version 1.6.0 Changed the internal date/time expression from string to the expression compatible with Excel, though the string expression is remained at using text files(csv,tsv,txt). Added user defined types (formats). Along with this, changed the display style of the cell data. Changed the processing of file deletion and renaming. Removed the mark indicating string type from the blank cell. Along with this, revised the sample file 'sampleCashCalc'. Before using this file, please initialize the sample file. Performed some small revisions.
  • 2017/10/17 Version 1.6.1 Fixed a bug that setting of hidden cannot reflect to the view from the data file.
  • 2017/10/28 Version 1.6.2 Added the option for using the cell size (height/width) compatible with XLS file.
  • 2017/12/07 Version 1.7.0 Added the JavaScript control of the key action. Added a layout element which indicates the commands executed at loading layout file. Changed the file format of samples from CSV to XLSX and Added few samples (Please remove csv files and execute [menu-FileManager-InitializeSampleFiles]).
  • 2017/12/10 Version 1.7.1 Added key commands. Fixed a small bug. Revised samples (Please execute [menu-FileManager-InitializeSampleFiles]).
  • 2018/01/28 Version 1.7.2 Fixed a bug at converting file type. Added a message at file loading. Added a message at version up. Added the function to split large data file (not support XLS/XLSX).
  • 2018/02/15 Version 1.7.3 In the function to split data file, added XLS/XLSX support, and trimming (limit the cell range to output). Changed deletion interaction from each single file to plural files.
  • 2018/03/07 Version 1.8.0 Modified UI for specifying range. Added the cut function. Added the storage type icon (Shared/Dedicated) in the main screen. Fixed several bugs.
  • 2018/03/08 Version 1.8.1 Fixed a bug about clear function.
  • 2018/03/20 Version 1.8.2 Added a simple how-to document.
  • 2018/05/21 Version 1.9.0 Added font color and fill color for cells (basic colors only). Revised a layout samples (Please execute [menu-FileManager-InitializeSampleFiles]). Fixed small bugs.
  • 2018/05/22 Version 1.9.1 Fixed a bug to cause abnormal stop.
  • 2018/05/25 Version 1.9.2 Added commands for setting fill/font colors and for saving/restoring the range selection.
  • 2018/06/04 Version 1.9.3 Added the function of QR Code generation. The text in the current cell or range is concatenated as the clipboard text format (Default:TSV). And the QR code for the text is created. Changed the function of QR Code scanning. The scanned text is divided as the clipboard text format (Default:TSV) and assigned to cells.
  • 2018/06/05 Version 1.9.4 Added / modified the layout samples (Please execute [menu-FileManager-InitializeSampleFiles]).
  • 2018/06/08 Version 1.9.5 Changed the QR code display size.
  • 2018/07/07 Version 1.9.6 Extended the text type of paste function to acquire text from many apps.
  • 2018/10/01 Version 1.10.0 Added functions of the data file export and import.
  • 2018/12/06 Version 1.10.1 Fixed a bug in the function of the data file import.
  • 2019/02/11 Version 1.10.2 Fixed a bug of CSV file input.
  • 2019/02/21 Version 1.10.3 Fixed bugs of paste action and AdMob display.
  • 2019/04/29 Version 1.11.0 Changed the file-related menu structure. Modified file-related functions and others. Added the reference-copy to the menu item. Added the screen for 'Input formula'.
  • 2019/05/07 Version 1.11.1 Changed the full screen editor to enable the formula editing. Added commands LISTV and PAREN. Added layout samples: sampleBasicCalc and sampleSciCalc (To use new samples, execute [menu-FileManager-InitializeSampleFiles]).
  • 2019/05/18 Version 1.11.2 Added the screen for 'Input Series Data'. Revised the interpreter of the arithmetic expression to minimize the calculation error and to accept the E notation. Changed the parsing of the date string to compare the date string with the designated format more strictly.
  • 2019/09/08 Version 1.11.3 Fixed a bug of emoji corruption in xlsx files.
  • 2019/10/06 Version 1.11.4 Added setting of the text alignment(e.g., Right, Bottom).
  • 2019/12/17 Version 1.11.5 Added regular expression search and replacement. Also added simple text replacement.
  • 2019/12/26 Version 1.11.6 Fixed a bug about the CR key on the entry bar.
  • 2020/01/11 Version 1.11.7 Added the function of sorting rows. Fixed small bugs.
  • 2020/01/11 Version 1.11.8 Reduced the APK file size.
  • 2020/01/16 Version 1.12.0 Added commands <SAVE><BACKUP><MENU menuItem>. Added layout sample: sampleMenuCmd (To use new sample, execute [menu-FileManager-InitializeSampleFiles]).
  • 2020/02/16 Version 1.12.1 Added the 'How to Start' page. It can be showed from the initial layout 'initKeypad'.
  • 2020/04/06 Version 1.12.2 Performed code refactoring. Modified settings menu.
  • 2020/06/25 Version 2.0.0 Added the support of media(Image, Video and Audio). Changed the data storage to an app specific area accessible from other applications. Modified the layout sample: sampleMultimodal (To use new sample, execute [menu-FileManager-InitializeSampleFiles]). Fixed bugs about deleting files and executing MENU command. In addition, applied many small revisions.
  • 2020/06/27 Version 2.0.1 Added commands <OPEN LAYOUT file><OPEN DATA file> (Can switch layout/data by touching a button). Added a setting item for the position of the entry bar.
  • 2020/07/01 Version 2.0.2 Added auto link option in the settings. When enabled, create link to URL, phone number etc in the full screen editor.
  • 2020/07/12 Version 2.1.0 Added the function of drawing graph. This app can draw line chart, stacked bar chart, grouped bar chart, pie chart, scatter chart, radar chart, bubble chart, and candlestick chart.
  • 2020/07/16 Version 2.1.1 Modified the function of drawing graph. The label can be shown in many graph types.
  • 2020/07/27 Version 2.1.2 Added the context menu to the list of the file manager view. Added the function 'frequency()' for formula. Revised some logic for load reduction.
  • 2020/08/16 Version 2.2.0 Added the dragging of the current cell and headers for specifying range. Added the double-tapping of headers for the cell-size seek-bars. Fixed small bugs.
  • 2020/08/17 Version 2.2.1 Fixed a bug about the movement of the current cell.
  • 2020/08/18 Version 2.2.2 Refixed a bug.
  • 2020/09/09 Version 2.3.0 Added the function of SQL query. Revised some logic for reducing load. Fixed many bugs.
  • 2020/09/14 Version 2.3.1 Fixed bugs about loading a file.
  • 2020/09/18 Version 2.3.2 Changed the import/export interface from single-selection to multi-selection. Fixed a bug about import function.
  • 2020/10/01 Version 2.3.3 Added the listing/renaming/deleting function of DB tables. Moved the menu about the media file, and added the function 'Paste to Cell' in the menu. Added few functions to the cell menu. Fixed small bugs and ambiguity.
  • 2020/10/13 Version 2.4.0 Added the function to freeze up-side and left-side cell panes. Fixed a bug about 'return to last backup'.
  • 2020/10/22 Version 2.4.1 Fixed a bug about keypad switching.
  • 2020/11/01 Version 2.4.2 Fixed a bug about initializing sample files. Removed the storage permission request. Removed the location search function. Changed the code according to the upgrade of system functions.
  • 2020/11/15 Version 2.5.0 Deleted the confirmation dialog of termination. The sheet is saved at the time of every screen transition. Added the frozen pane count and csv/tsv separator character to settings menu. Fixed a bug about range setting.
  • 2021/01/13 Version 2.6.0 Added the treatment of sub-folders. Changed the menu structure. Added the preview of files. Added a built-in sound player. Added the function of file share. Added the selection of the regular expression search and the case insensitive search to the search bar. And modified many functions and UIs.
  • 2021/01/18 Version 2.6.1 Revised "Simple How-To" document. Fixed a bug about the setting of the fill/font color. Fixed a bug about the button visibility in the file manager. Fixed a bug about the deleting and inserting rows/columns.
  • 2021/01/25 Version 2.6.2 Added the back button on most of action bars for the usability in the gesture navigation.
  • 2021/01/28 Version 2.6.3 Modified the save function to reserve the previous file when save failed..
  • 2021/02/02 Version 2.6.4 Modified the document of how-to-start and added it to the menu. Added the list of supported formula functions in the formula input screen.
  • 2021/02/17 Version 2.7.0 Added the setting for the number of decimal places in cell views. Changed the current cell view to show the editable raw value. Changed the back button action in the full screen editor. Modified zoom buttons. Modified the layout sample: sampleSciCalc (To use new sample, execute [menu-FileManager-InitializeSampleFiles]). Added the check box of InitializeSampleFiles in the version up dialog. Fixed small bugs.
  • 2021/02/20 Version 2.7.1 Added the explanation of auto-save in the 'Save As' dialog.
  • 2021/02/26 Version 2.7.2 Renamed a menu item from 'Save As' to 'Convert To' to avoid misunderstanding.
  • 2021/03/02 Version 2.7.3 Modified a sheet menu item 'Expand Table Size' to 'Resize Table' and enabled shrink. Added cutting wasteful end rows/columns off, when saving to the file.
  • 2021/03/12 Version 2.7.4 Modified 'Change data type' for more flexible conversions.
  • 2021/03/22 Version 2.8.0 Modified 'Change data type' again. Modified deprecated code. Added the format for the formula cell view. Added built-in formats for the cell view.
  • 2021/03/25 Version 2.8.1 Added display samples in the format selection list. Fixed small bugs.
  • 2021/04/01 Version 2.8.2 Added checking for revision of sample files. Modified the input support screen for formula. Fixed small bugs.
  • 2021/04/08 Version 2.8.3 Changed a menu description from "Change data type/format" to "Type and Format" Modified the function list in the input formula screen. Modified the date formatting.
  • 2021/04/08 Version 2.8.4 Modified the date formatting.
  • 2021/04/10 Version 2.8.5 Fixed a bug at pause.
  • 2021/04/20 Version 2.9.0 Added functions of backup and restore. Fixed small bugs.
  • 2021/05/21 Version 2.10.0 Added hand-write function. Fixed a bug about loading camera on Android 11. Fixed small bugs.
  • 2021/06/01 Version 2.10.1 Modified deprecated code. Fixed small bugs.
  • 2021/06/03 Version 2.10.2 Fixed small bugs.
  • 2021/06/10 Version 2.10.3 Fixed small bugs.
  • 2021/06/23 Version 2.10.4 Fixed a bug about loading speech recognition on Android 11. Fixed small bugs.
  • 2021/07/09 Version 2.10.5 Added max interval decided as double tap. Fixed small bugs.
  • 2021/07/23 Version 2.10.6 Improved the loading of CSV file. Added the switch to show heap memory usage bar in settings. Fixed small bugs.
  • 2021/08/01 Version 2.11.0 Added 'Load via SQL Query' in the menu. When you select to use a part of big data file, it might be useful. Fixed the garbling of characters in the file previewer.
  • 2021/08/09 Version 2.11.1 Added the long click of command buttons. It acts as switching to layout edit mode.
  • 2021/09/14 Version 2.11.2 Fixed small bugs. Added getting image from clipboard.
  • 2021/10/04 Version 2.11.3 Fixed small bugs. Modified the treatment of thumbnail images.
  • 2021/11/01 Version 2.11.4 Added reset of share after receiving shared data. Modified the share from the file list. Disabled to invoke sound recorder/player from other apps. Changed the menu expression 'Convert' to 'Save As'.
  • 2022/03/25 Version 2.11.5 Modified the display of numeric values.
  • 2022/05/14 Version 3.0.0 Employed RecyclerView for performance improvement. Changed to reflect the cell sizes to the data file (XLS/XLSX format). Added a bar to run commands directly without keypad entry (hide in default). Removed the heap memory usage bar. Revised deprecated code. Applied small bug fixes and improvements.
  • 2022/05/17 Version 3.0.1 Fixed small bugs.
  • 2022/06/02 Version 3.1.0 Added the function of borders. Fixed small bugs.
  • 2022/06/16 Version 3.2.0 Added settings of font properties (color, size, bold, italic, underline and strike out). Added function of file history retention. Fixed the bug of inserting/removing columns, setting column properties, and others. Added error messages.
  • 2022/06/19 Version 3.2.1 Refined the logic of property change.
  • 2022/06/20 Version 3.2.2 Fixed a bug at showing file history. Fixed small bugs.
  • 2022/06/21 Version 3.2.3 Fixed bugs at setting font and deleting sheet. Fixed small bugs.
  • 2022/06/22 Version 3.2.4 Renamed from [QESS free] to [QESS std] following the instruction of Google Play.
  • 2022/06/30 Version 3.2.5 Removed annoying error messages. Fixed a bug at hiding columns. Fixed small bugs.
  • 2022/07/04 Version 3.2.6 Fixed a bug at deleting/inserting columns.
  • 2022/07/14 Version 3.3.0 Refined UI of changing row-height and column-width.
  • 2022/09/12 Version 3.4.0 Added print function. Fixed small bugs.
  • 2022/10/05 Version 3.4.1 Fixed a bug in the command of exchanging keypad.
  • 2022/12/01 Version 3.5.0 Fixed a bug in receiving Share data and other bugs. Added the auto-orientation of camera images. Added basic key actions useful for physical keyboard (refer Help). Added shortcut setting in the layout file (needs Initialize sample files). Added the thumbnail image in the URL cell of image and Youtube video. Added accessing a URL by the double tap of the URL cell. Removed the setting 'Use System Keyboard Always'.
  • 2022/12/01 Version 3.5.1 Fixed a bug at showing thumbnail.
  • 2022/12/16 Version 3.5.2 Fixed bugs about the delete key and others. Reduced the loss of files happened at error. Added the save of the open failure file. Modified to start a sheet from the last cell position. Modified to move the current cell downward (or rightward) after paste.
  • 2022/12/23 Version 3.5.3 Fixed bugs about emoji display and others. Changed poishadow to 0.7 and minSdkVersion to 26. Removed the function to split a file. Added drop-shadow to thumbnail images.
  • 2022/12/28 Version 3.5.4 Fixed small bugs and deprecated code.
  • 2023/05/18 Version 3.5.5 Changed the cell-size seek-bar visibility at selecting the range.
  • 2023/05/22 Version 3.5.6 Modified the cell-size seek-bar value display-formats. Fixed small bugs and deprecated code.
  • 2023/06/03 Version 3.5.7 Fixed a bug at creating a xls file. Modified the how-to document.
  • 2023/07/11 Version 3.6.1 Supported dark mode. Added search function in Web view. Extended 'GO' command to enable jumping between sheets. Applied many small modifications.
  • 2023/07/14 Version 3.6.2 Fixed a small bug.
  • 2023/07/15 Version 3.6.3 Fixed a small bug.
  • 2023/07/18 Version 3.6.4 Fixed a small bug.
  • 2023/08/08 Version 3.7.0 Added a menu item "Share(Media)" and the command "ShareMedia". Extended the Share command (refer Help>Setting Share). Added a sample layput file "sampleShare" (needs Initialize Sample Files). Fixed small bugs.
  • 2023/10/27 Version 3.7.1 Fixed deprecated code. Updated the link of libraries.
  • 2024/03/05 Version 3.7.2 Refined the drawing of borders. Refined functions of copy/cut/paste.