0

我目前正在构建一个 Web 应用程序,它将以 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                         
4

2 回答 2

2

According to the XML Excel spec on MSDN http://msdn.microsoft.com/en-us/library/aa140066(v=office.10).aspx#odc_xmlss_ss:column The ss:Width is the column width in points (which may render differently based on screen resolution, etc).

The extra spaces around your trimmed text may be due to your indenting. Try collapsing that XML element like this:

<ss:Data ss:Type="String" >@(query.Name.ToString().Trim())</ss:Data>
于 2013-02-13T19:40:52.337 回答
0

原来我的问题一直是我的<Row>代码格式

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

标记之间的前导和后继空格<ss:Data>被复制到 Excel 文档中。我不知道为什么会这样,但这解决了我的问题。

于 2013-02-13T19:35:50.980 回答