5

出力はワード文書 (docx) です。

C# 4.0 string.Format を使用して、このような出力を作成したいと思います。

string1: stringValue1,  string2:stringValue2
string4: stringValue4,  string5:stringValue5
string6: stringValue6,  string7:stringValue7
string8: stringValue8,  string9:stringValue9

使用してstring.Format("{0,-10} {1,-10}",string1,string2)いますが、何もしません。string.Format() を使用して文字列を整列する方法はありますか? '\t' ソリューションを見ましたが、それを string.Format() に追加するにはどうすればよいですか?

ここに私のコードと私の出力があります:

string titel = HttpUtility.HtmlEncode(docItem.Title);
                    string href = docItem.FullURL;
                    string title = string.Format("{0}", titel);
                    string author = docItem.Author;
                    string date = docItem.ChangedDate.Date.ToShortDateString();
                    CreateTextBoxConentParagraph(doc, string.Format("Title: <a href='{0}'>{1}</a> Author: {2} Geändert an: {3}",href,title.PadRight(20),author.PadRight(20), date),string.Format("chunkId_{0}", i++));

出力: タイトル: 作成者: aaa Geändert an: 19.04.2013

タイトル: 2番目 著者: aaa Geändert an: 18.04.2013

タイトル: slika 著者: aaa Geändert an: 18.04.2013

タイトル: dm 著者: aaa Geändert an: 18.04.2013

タイトル: Mathias 著者: aaa Geändert an: 19.04.2013

タイトル: QQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQqq 著者: aaa Geändert an: 19.04.2013

4

5 に答える 5

8

PadLeftPadRightメソッドを使用してみてください。例えば:

string.Format("{0} {1}",string1.PadRight(25),string2.PadRight(25)) 

また、文字を使用してスペースを埋めることもできます。MSDNから:

string str = "forty-two";
char pad = '.';
Console.WriteLine(str.PadRight(15, pad));    // Displays "forty-two......".
Console.WriteLine(str.PadRight(2,  pad));    // Displays "forty-two".
于 2013-04-19T12:17:20.197 に答える
2

以下のサンプルのインポート部分は

String.Format("{0,-12}{1,8}{2,12}{1,8}{2,12}{3,14}\n",
                                      "City", "Year", "Population", "Change (%)")

次の MSDN の例を見てください。

public static void Main()
    {
        // Create array of 5-tuples with population data for three U.S. cities, 1940-1950.
        Tuple<string, DateTime, int, DateTime, int>[] cities = 
      { Tuple.Create("Los Angeles", new DateTime(1940, 1, 1), 1504277, 
                     new DateTime(1950, 1, 1), 1970358),
        Tuple.Create("New York", new DateTime(1940, 1, 1), 7454995, 
                     new DateTime(1950, 1, 1), 7891957),  
        Tuple.Create("Chicago", new DateTime(1940, 1, 1), 3396808, 
                     new DateTime(1950, 1, 1), 3620962),  
        Tuple.Create("Detroit", new DateTime(1940, 1, 1), 1623452, 
                     new DateTime(1950, 1, 1), 1849568) };

        // Display header 
        string header = String.Format("{0,-12}{1,8}{2,12}{1,8}{2,12}{3,14}\n",
                                      "City", "Year", "Population", "Change (%)");
        Console.WriteLine(header);
        string output;
        foreach (var city in cities)
        {
            output = String.Format("{0,-12}{1,8:yyyy}{2,12:N0}{3,8:yyyy}{4,12:N0}{5,14:P1}",
                                   city.Item1, city.Item2, city.Item3, city.Item4, city.Item5,
                                   (city.Item5 - city.Item3) / (double)city.Item3);
            Console.WriteLine(output);
        }
    }
于 2013-04-19T12:19:15.143 に答える
1

DOCX 形式に書き込む場合は、Office Open XML 形式を使用する必要があります。(詳しくはこちらもご覧ください。)

次に、データを表形式に揃えるために、ドキュメントに表を挿入し、目的のデータを表に入力する必要があります。

以下は、プログラムによってテーブルを DOCX ファイルに挿入する方法を示すサンプル コードです。

表の境界線を非表示にして、表のセル内のテキストのみが表示されるようにする必要があります。

于 2013-04-19T13:34:45.190 に答える
0

2 番目のコード サンプルhttp://msdn.microsoft.com/en-us/library/system.string.format.aspxを確認できます。

また、以前は padLeft および padRight メソッドを使用していました

于 2013-04-19T12:18:20.153 に答える