0 / 0 / 1
Регистрация: 23.03.2011
Сообщений: 16
1

Выгрзука в Excel из DataGridView. Нарушен порядок столбцов

30.07.2014, 13:40. Показов 890. Ответов 2
Метки нет (Все метки)

Здравствуйте.
Выгружаю данные из БД на DataGridView. Затем из DataGridView делаю экспорт в Excel. На компьютерах с Win7 все замечательно работает.
Попался компьютер с WinXP. Проблемы начались с того, что в DataGridView столбцы загрузились не в том порядке. Соответственно, и в Excel та же беда.
Задал порядок отображения в DataGridView вот так:
C#
1
dataGridView1.Columns["Время"].DisplayIndex = 1;
Теперь в Гриде нужный порядок, но в Excel по прежнему выгружает неправильно.
Выгружаю так.
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
            Microsoft.Office.Interop.Excel.Application Exl = new Microsoft.Office.Interop.Excel.Application();
            Microsoft.Office.Interop.Excel.Workbook wb;
            Microsoft.Office.Interop.Excel.Range excelcells;
            Microsoft.Office.Interop.Excel.Worksheet excelworksheet;
            Microsoft.Office.Interop.Excel.Sheets excelsheets;
 
            XlReferenceStyle RefStyle = Exl.ReferenceStyle;
 
 
            String TemplatePath = System.Windows.Forms.Application.StartupPath + @"\Шаблон.xls";
            try
            {
                wb = Exl.Workbooks.Add(TemplatePath); // !!! 
            }
            catch (System.Exception ex)
            {
                throw new Exception("Не удалось загрузить шаблон для экспорта " + TemplatePath + "\n" + ex.Message);
            }
            Worksheet ws = wb.Worksheets.get_Item(1) as Worksheet;
 
            Exl.Visible = false;
           
            for (int i = 0; i < dataGridView1.Rows.Count; i++)
            {
 
 
                (ws.Cells[8 + s, 1] as Range).Value2 = dataGridView1.Rows[i].Cells[0].Value.ToString(); //фронт
                (ws.Cells[8 + s, 2] as Range).Value2 = dataGridView1.Rows[i].Cells[1].Value.ToString(); //время
 
// и т.д.
 
            }
 
            
            Exl.Visible = true;
Почему Excel не подхватывает правильный порядок столбцов? Назначения свойства DisplayIndex для этого не достаточно?
Спасибо.
__________________
Помощь в написании контрольных, курсовых и дипломных работ, диссертаций здесь
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
30.07.2014, 13:40
Ответы с готовыми решениями:

Порядок столбцов в DataGridView
Привет всем! Подскажите, пожалуйста, как программно изменить порядок столбцов в DataGridView? ...

Datagridview порядок отображение столбцов
Здравствуйте.Подскажите пожалуйста как поменять порядок столбцов в datagridview в котором...

Изменить порядок расположения столбцов DataGridView
Есть dataGridView, который заполняется из БД таким способом: ...

Программно поменять порядок столбцов в dataGridView
Как программно поменять местами столбцы в datagridview? И как узнать порядок ихнего расположения?

2
147 / 73 / 17
Регистрация: 31.05.2014
Сообщений: 215
30.07.2014, 14:37 2
JohnLee, вы просто поменяли порядок отображения, а требовалось поменять местами столбцы.
0
0 / 0 / 1
Регистрация: 23.03.2011
Сообщений: 16
30.07.2014, 15:20  [ТС] 3
Ясно.
А можно как-то поменять местами столбцы в уже заполненном гриде?
Или это нужно предусматривать на этапе заполнения грида?

И не понятно, почему на Win7 порядок нормальный, а на WinXP скачет как попало.
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
30.07.2014, 15:20
Помогаю со студенческими работами здесь

Как изменить порядок столбцов в Excel?
есть лист Excel, можно ли сделать так чтобы при его открытии пользователь видел сразу после столбца...

Экспорт столбцов из Datagridview в Excel
У меня есть Datagridview, в которой 3 столбца, есть 3 checkBox'a по их выделению и нажатию кнопки...

Экспорт определенных столбцов из datagridview в Excel
Доброго времени суток! Есть код в программе. который экспортирует ВСЕ данные из datagridview в...

Экспорт datagridview в excel без скрытых столбцов
Вот так делаю экспорт в Excel без скрытых столбцов. var ws = wb.Worksheets.Item as Worksheet; ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2022, CyberForum.ru