-1

例: A、B、C が列で、1、2、3 がシートの行であるとします。列 1、2、3 の場合、スプレッドシート ギア ABC 1 2 3 を使用して、単一の行として表示をマージする必要があります。

4

2 に答える 2

1

ヘッダーを動的に生成することについて、あなたが何を意味するのかわかりません。あなたのデータのソースは何ですか?列または行をマージするには、IRangeクラスのMergeメソッドを使用できます。

workbookView1.ActiveWorksheet.Cells["A1:A3"].Merge()

1つのセルにマージすると、左上のほとんどのデータのみが保持されます。

于 2012-01-03T19:22:13.237 に答える
0

できることは、リフレクションを使用して Enumerable 型を送信し、それを DataTable に変換することです。

 private static DataTable ConvertToDataTable(IEnumerable<T> enumerable)
        {
            var properties = TypeDescriptor.GetProperties(typeof(T));
            var table = new DataTable();
            foreach (PropertyDescriptor prop in properties)
                table.Columns.Add(prop.Name, Nullable.GetUnderlyingType(prop.PropertyType) ?? prop.PropertyType);
            foreach (var item in enumerable)
            {
                var row = table.NewRow();
                foreach (PropertyDescriptor prop in properties)
                    row[prop.Name] = prop.GetValue(item) ?? DBNull.Value;
                table.Rows.Add(row);
            }
            return table;
        }

その後、スプレッドシートのギアに任せてください。それをメモリ ストリームに変換してから、byte[] に変換します。

byte[] を FileContentResult に渡します

于 2016-03-25T07:21:06.113 に答える