Попытка понять C# и таблицы XML в ASP.net

В настоящее время я создаю веб-приложение, которое будет предоставлять пользователям ту же информацию, которую они видят в таблице на текущей странице, в формате электронной таблицы Excel. Я нашел некоторый предыдущий код в другом проекте, который сделал то же самое.

Сначала маленький вопрос: кто-нибудь знает, как работает Column ss:Width? Это не точное совпадение. Column ss:AutoFitWidth="0" ss:Width="114" возвращает ширину столбца 21,00...

Где у меня большая часть проблем, так это то, что все данные, которые передаются в электронную таблицу, имеют начальный и хвостовой пробелы; Понятия не имею, как это убрать. я пробовал .Trim() когда я делаю .ToString() запрос, и я искал другие методы, но я, кажется, не нашел его. Ниже приведен фрагмент кода моей рабочей таблицы:

   <Worksheet ss:Name="UserMgmt1">
        <Table>        
            @*Name*@
            <Column ss:AutoFitWidth="0" ss:Width="114" /> 
             <Row>
                 <Cell ss:StyleID="s29">
                  <Data ss:Type="String">Name</Data> 
                  </Cell>

             </Row>
        @foreach (tbl_Users query in ViewBag.contents )
            {
            <Row>
                <Cell ss:StyleID="s31">
                    <ss:Data ss:Type="String" >
                        @(query.Name.ToString().Trim())
                    </ss:Data>
                </Cell>
            </Row>
            }
     </Table>
 </Worksheet>

Забыл добавить ActionResult, который реализует этот код:

    public ActionResult _Excel(tblUsers model)
    {
        List<tbl_Users> inquiriesList = UserManageModel.GetResults(model);
        ViewBag.contents = inquiriesList;
        return View("_Excel");
    }

И звонок:

@using (Html.BeginForm("_Excel", "UserManage", FormMethod.Post))
{
    <input type="submit" value="View Detailed List of Users in Excel" />
}

Результат выглядит так в Excel, с таким большим количеством пробелов, окружающих каждый элемент строки:

                     Administrator                         

2 ответа

В соответствии со спецификацией XML Excel на MSDN http://msdn.microsoft.com/en-us/library/aa140066(v=office.10).aspx ss:Width - это ширина столбца в точках (которая может отображаться по-разному в зависимости от разрешения экрана и т. д.).

Лишние пробелы вокруг вашего обрезанного текста могут быть связаны с вашим отступом. Попробуйте свернуть этот элемент XML следующим образом:

<ss:Data ss:Type="String" >@(query.Name.ToString().Trim())</ss:Data>

Оказывается, моей проблемой всегда было форматирование моего <Row> код

<ss:Data ss:Type="String" >
       @(query.Name.ToString().Trim())
</ss:Data>

Ведущий и следующий пробел между <ss:Data> Теги копируются в документ Excel. Я понятия не имею, почему это происходит, но это решает мою проблему.

Другие вопросы по тегам