Feb 16th, 2010, 9:41 PM
Huh! I didn't know that about the apostrophe. Another weird Excel-ism! And yes, you're absolutely right about the whitespace that was added for readability. So let's try something like this:
I confess I haven't tested it, but the new {strip} content will strip out all whitespace and the apostrophe added right after the opening <td> cell should (fingers crossed) tell Excel to render the contents as string.
Let me know how it goes! And sorry for the patchy support...
- Ben
Code:
<h1>{$form_name}</h1>
<table cellpadding="2" cellspacing="0" width="100%" class="print_table">
{* display the column headings *}
<tr>
{foreach from=$display_fields item=column name=row}
<th>{$column.field_title}</th>
{/foreach}
</tr>
{* loop through all submissions in this current result set, and display each item in a manner
appropriate to the field type *}
{foreach from=$submissions item=submission name=row}
{strip}
<tr>
{foreach from=$display_fields item=field name=col_row}
{assign var=field_id value=$field.field_id}
{assign var=field_type value=$field.field_info.field_type}
{assign var=col_name value=$field.col_name}
{assign var=value value=$submission.$col_name}
<td>'
{if $field_type == "select" || $field_type == "radio-buttons"}
{smart_display_field_values field_id=$field_id selected=$value}
{elseif $field_type == "checkboxes" || $field_type == "multi-select"}
{smart_display_field_values field_id=$field_id selected=$value multiple=true}
{elseif $field_type == "system"}
{if $col_name == "submission_id"}
{$submission.submission_id}
{elseif $col_name == "submission_date"}
{$submission.submission_date|custom_format_date:$timezone_offset:$date_format}
{elseif $col_name == "last_modified_date"}
{$submission.last_modified_date|custom_format_date:$timezone_offset:$date_format}
{elseif $col_name == "ip_address"}
{$submission.ip_address}
{/if}
{elseif $field_type == "textarea"}
{$value|nl2br_excel}
{else}
{$value}
{/if}
</td>
{/foreach}
</tr>
{/strip}
{/foreach}
</table>
I confess I haven't tested it, but the new {strip} content will strip out all whitespace and the apostrophe added right after the opening <td> cell should (fingers crossed) tell Excel to render the contents as string.
Let me know how it goes! And sorry for the patchy support...
- Ben