0

現在、現在のページのテーブルに表示されるのと同じ情報を Excel スプレッドシート形式でユーザーに提供する Web アプリケーションを構築しています。同じことを行った別のプロジェクトで以前のコードを見つけました。

最初の小さな質問: 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

MSDNのXMLExcel仕様によるとhttp://msdn.microsoft.com/en-us/library/aa140066(v=office.10).aspx#odc_xmlss_ss:columnss:Width は、ポイント単位の列幅です(画面の解像度などに基づいてレンダリングが異なる場合があります)。

トリミングされたテキストの周りの余分なスペースは、インデントが原因である可能性があります。そのXML要素を次のように折りたたんでみてください。

<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 に答える