BookmarkSubscribeRSS Feed
deleted_user
Not applicable
Does anyone know of any information on using the experimental MARKUP ODS sestibnation?
9 REPLIES 9
David_SAS
SAS Employee
Check out http://support.sas.com/rnd/base/topics/odsmarkup/ to learn more about the ODS MARKUP destination.

-- David Kelley, SAS
ChrisJones
Calcite | Level 5
Chris

I have actually used this in anger on my previous contract, both in base SAS and in Enterprise Guide - v1.3 no less.

There are one or two issues, notably that dates HAVE to be converted to text, otherwise Excel will not load the file.

You can do some tweaking using the tagset, but things like automatic column widths do NOT work. That apparently, is largely due to Microsoft's poor implementation of XML.
Eric_SAS
SAS Employee
I am assuming you are referring to the ExcelXp tagset not XML in general. ODS markup is not specific to Excelxp's SpreadsheetML.

If that is what you are referring to, I would be interested to know which version of the tagset you were using and what sort of problems you had.

I should also mention that the ExcelXp tagset does not work with SAS 8.2.
It was introduced with SAS 9.0. The current version of the tagset prefers
SAS 9.1.3. It can be made to work with previous versions but with limited
versatility.

The column width calculations are not perfect but do work fairly well in most cases. Proportional fonts do not make this an easy task.

For the cases where the generic measuring does not work, there are numerous ways to make the calculation better or to over ride those
calculations and make the width whatever you want. I would be interested
to know the specifics of the problems that you were having.

Also, you do realize that any data, including dates, can be given an excel format. So you are not limited to just dates as strings. Even if no format is supplied, I have not seen any instance where spreadsheeML with dates has not loaded.
ChrisJones
Calcite | Level 5
Eric

No, I am referring the Excel82 tagset. I was using EG v1.3 and SAS 8.2.

The feature that I wanted to implement on the project was to set automatic column width in each tab, but unfortunately, this was not possible.

I agree that the ExcelXP tagset will not work in v8.2

I reiterate that I was unable to generate loadable xml with dates unless I first of all ensured that the relavent field(s) were first of all converted to text.
Eric_SAS
SAS Employee
There is no Excel 8.2 tagset. Maybe you were using the CSV tagset.
The Excel tagset didn't exist before SAS 9.0. The Excel tagset requires features that didn't exist in the tagset language before SAS 9.0.

Of course both the excel tagset and the CSV tagset treated dates as strings, so I'm still not sure why you needed to convert them.
ChrisJones
Calcite | Level 5
Eric

Sorry for the delay. However, you are not actually correct. The tagset can be found here: http://support.sas.com/rnd/base/topics/templateFAQ/excelexamples.html - As mentioned above, I have used this extensively over the last couple of months (being restricted to v8.2).
Eric_SAS
SAS Employee
That tagset does not generate XML. It is HTML. You are importing HTML files into Excel when you use the output created by that tagset.

The quality of what you get in your worksheet is entirely
dependendent upon Excel's ability to import HTML.

That tagset does add some microsoft specific xml to the head section of the HTML. That is the extent of the XML that is in use. It is really HTML not XML.

It does not come close to resembling the Excelxp tagset we use to create SpreadsheetML XML for Excel.
ChrisJones
Calcite | Level 5
My misunderstanding then, based upon the description in the header block of the tagset - no mention of HTML there.
Eric_SAS
SAS Employee
The tagset inherits from the htmlcss tagset. The clue is the

parent = tagsets.htmlcss;

This tagset gets most of it's abilities there. It only adds the bit of XML in
the header.

HTMLcss is one of the core html tagsets used by all the higher level html tagsets.

sas-innovate-2024.png

Join us for SAS Innovate April 16-19 at the Aria in Las Vegas. Bring the team and save big with our group pricing for a limited time only.

Pre-conference courses and tutorials are filling up fast and are always a sellout. Register today to reserve your seat.

 

Register now!

How to Concatenate Values

Learn how use the CAT functions in SAS to join values from multiple variables into a single value.

Find more tutorials on the SAS Users YouTube channel.

Click image to register for webinarClick image to register for webinar

Classroom Training Available!

Select SAS Training centers are offering in-person courses. View upcoming courses for:

View all other training opportunities.

Discussion stats
  • 9 replies
  • 1185 views
  • 0 likes
  • 4 in conversation