INF: XLTABLE Clipboard Format Documentation Available

ID Number: Q75631

3.00 3.10

WINDOWS

Summary:

XLTABLE is a new clipboard format developed for use in dynamic-data

exchange (DDE) conversations with Microsoft Excel.

Using this format instead of BIFF (the Binary Interchange File Format)

results in faster conversations. Code to read and write this format is

also easier to implement. The format does not introduce translation

problems that can occur when putting text on the clipboard.

The "Microsoft Excel Software Development Kit," part number 065-000-

020, describes all the Excel file formats. In the United States, this

document is available for $20.00 through the Microsoft Consultant

Relations Program by calling (800) 227-4679. Outside the United

States, contact the Microsoft subsidiary that supports your country

for pricing and availability information.

More Information:

The following information documents the XLTABLE data format:

FAST FILE FORMAT

----------------

The Fast DDE Table data consists of multiple simple_datablocks, one

after the other:

Fast_DDE_Table = <simple_datablock> <simple_datablock> ...

<simple_datablock>

A simple_datablock has three parts:

WORD tdt; // The table datatype

WORD cb; // The size (in bytes) of the data part

BYTE data[]; // There are cb bytes in this part

Description of the Table Datatypes:

tdt Value Meaning

--- ----- -------

tdtTable 0x0010 Gives the size of the table. The cb is 4.

The data (4 bytes) has two words: the first

word is the number of rows, the second word

is the number of columns.

tdtFloat 0x0001 The data contains floating point values in IEEE

real format. The size of each entry is 8 bytes.

tdtString 0x0002 The data contains strings in "st" format. In this

format, the first byte gives the length of the

string, and the following bytes make up the

string. The string is not null-terminated.

tdtBool 0x0003 Boolean values: 1 = TRUE, 0 = FALSE

Each entry is 2 bytes.

tdtError 0x0004 Error values for the cell:

0 = #NULL!

7 = #DIV/0!

15 = #VALUE!

23 = #REF!

29 = #NAME?

36 = #NUM!

42 = #N/A

Each entry is 2 bytes.

tdtBlank 0x0005 The cb is 2. The data (2 bytes) has one word.

The value of the word is the number of blank cells.

tdtType 0x0080 Not used. Gives the type of the cell. Each entry

is 2 bytes.

tdtFormat 0x0081 Not used. Gives the format of the cell (0-

relative index into the format table as shown in

the Format Number dialog box). Each entry is 2

bytes.

Order of the cells: The first simple_datablock must be of type

tdtTable. This record provides the number of rows and columns. This is

followed by rows*cols cells represented by the subsequent

simple_datablocks. The cells are represented row-wise, (all cells of

the first row are listed first, then all cells of the second row, and

so on).

For example, the Fast DDE Table for a selection consisting of three

cells in a row, containing the strings "East", "West", and "North",

respectively, will resemble the following:

10 00 04 00 01 00 03 00 - tdtTable, 4, 1, 3

02 00 10 00 - tdtString, 16

04 45 61 73 74 - 4, East

04 57 65 73 74 - 4, West

05 4e 6f 72 74 68 - 5, North

Additional reference words: 3.00 3.10 DDE clipboard