динамически генерировать заголовки в Excel, используя механизм электронных таблиц - PullRequest
0 голосов
/ 03 января 2012

Пример: допустим, что A, B, C - столбцы, а 1,2,3 - строки в листе. Для столбца 1,2,3 строки необходимо объединить отображение в виде отдельных строк, как при использовании механизма электронных таблиц ABC 1 2 3

Ответы [ 2 ]

1 голос
/ 03 января 2012

Я не уверен, что вы имеете в виду под динамически генерирующимися заголовками.Каков ваш источник данных?Чтобы объединить столбцы или строки, вы можете использовать метод Merge класса IRange.

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

При объединении в одну ячейку будет сохраняться только самый верхний левый объем данных.

0 голосов
/ 25 марта 2016

Что вы можете сделать, это использовать отражение, чтобы отправить тип 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;
        }

После этого пусть механизм работы с электронными таблицами выполнит свою работу.Преобразуйте его в поток памяти и затем в байт []

Передайте байт [] в FileContentResult

...