OASIS Mailing List ArchivesView the OASIS mailing list archive below
or browse/search using MarkMail.


Help: OASIS Mailing Lists Help | MarkMail Help

office-formula message

[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [List Home]

Subject: Some random comments arising from my work

Hi, all!

I'm sorry I haven't been much help these last several weeks or so. 
Among other things I'm hard at work getting my wikiCalc product to a 
beta stage. In doing so I have found the exposure I had here to 
various issues quite helpful, as well as the material from 
OpenFormula.org. I wrote this up on my blog 
(http://danbricklin.com/log/2006_04_05.htm#standards : "Standards 
Specification and wikiCalc"). This was also picked up by ZDNet's BTL 
blog: http://blogs.zdnet.com/BTL/?p=2850


When talking to David Wheeler, we decided that it might be helpful to 
others if I discussed some of the issues I've been dealing with and 
what I'm putting in wikiCalc:

I realized from feedback I've gotten that people are taking this 
product more seriously (in terms of what they expect of it) than I 
was planning. This is good. It means, though, that I need to handle 
more types of things than I planned, such as date/time format, easier 
input without needing to format every cell explicitly, etc. Also, if 
you all have created such full spreadsheets on so many platforms 
(even PDAs) I should at least try to be "grown up" in what I support 
and anyway it must be what most people expect. In my heart (not my 
lazy coding hand) I know this is true -- I'd want a lot of the 
features people assume are in every spreadsheet. This is what I have 
ended up with so far.

Values can have any one of a few different types. Right now I have 
numeric, text, error, and blank. Each can have any number of 
sub-types. For example, numeric has plain numeric, date, time, 
date/time, currency, and percent. Text has plain, HTML, wiki (maybe 
more than one flavor), and maybe URL, image URL, and who knows what 
else (blob for random bytes? SVG? Postscript?).

When I do an operation I have a table that tells the program given 
various value types what type of result to produce. For example, 
adding a number to a time gives you a time, but adding a date gives 
you a date/time. Having some standard for what you'd put in such a 
table would be nice... (But who has time to define it for the spec?)

When the user enters a value into a cell the value is parsed simply. 
If it looks like a number, it's gets type numeric and only the 
resulting value is stored. If it looks like a percent, it is stored 
as a value (1% => .01), the type is set to numeric percent, and the 
original text is kept for subsequent editing. Likewise with currency, 
date, etc. I will probably add a setting (common on spreadsheets) to 
say always parse this as text, date, or whatever. There are also the 
use of a prefix, such as ' for explicit text, like spreadsheets have 
had since VisiCalc.

Output formatting has explicit formats on the cells, or else 
defaults. There are formatting settings for both text and numbers, 
both kept and used depending upon the value type at the time of 
rendering. The sheet has format settings for text and numeric if the 
cell has none, and then there are global super defaults built in 
(though eventually to be app level settings).

Most of the formats are the normal ones: the equivalent of #,##0.00, 
etc. It is easy to change the set you choose from (at the app level) 
to handle different styles (e.g., currency indication, separator style, etc.).

There are text formats for plain text (with chars like < and & 
escaped and line breaks preserved), HTML (sent to the browser without 
escapes), wiki (plain text plus markup like many wikis), and perhaps others.

The General format comes in two flavors: general and general with 
separator. The general format looks to the value sub-type for 
formatting hints. Percent is treated as percent, date as one of the 
date formats, HTML text as HTML, etc.

I don't know most of the spreadsheets out there so I don't know how 
different any of this is. I have found that my old copy of Excel 
seems to set formats on cells when they are created and doesn't have 
this value-type propagation with extended general format.

I hope this is helpful/interesting to others. Any feedback is welcome.


[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [List Home]