Изменение заголовка столбца по умолчанию при импорте данных
Hi, I have a gridview which has 4 columns in total now the first column name i am importing from an excel sheet which is named as "FileName".the gridview is taking columnheader as F1 instead of filename.i need that f1 to be replaced with my column header name.
Что я уже пробовал:
so far i have tried dataGridView1.Columns[0].Name = "Filename"; dtExcel.Columns.Add("Filename"); dataGridView1.Columns[0].HeaderText = "Filename" by this all new column of filename is getting added but that F1 is not getting replaced. Help Please.
Ralf Meier
Извините... но с этой информацией я не мог вам помочь - пожалуйста, улучшите свой вопрос с помощью дополнительной информации ...
NazneenSayed
можем ли мы прикрепить сюда изображение ? я не мог найти и я думаю, что этот вопрос будет лучше понят с этим изображением
Ralf Meier
Я не уверен, что это действительно поможет , но вы могли бы попробовать ...
NazneenSayed
сделано.пожалуйста, проверьте
Ralf Meier
Я ничего не вижу ...
NazneenSayed
У меня есть gridview, который имеет в общей сложности 4 столбца, теперь первое имя столбца, которое я импортирую из листа excel, называется "FileName".gridview по умолчанию принимает имя columnheader как F1 вместо filename.мне нужно, чтобы f1 был заменен моим именем заголовка столбца ,которое является " filename"
Karthik_Mahalingam
разместите изображение и поделитесь ссылкой
https://snag.gy/
NazneenSayed
поделитесь изображением, пожалуйста, проверьте : https://snag.gy/Y0V8CZ.jpg
Richard MacCutchan
Как Вы читаете данные Excel в DataTable?
NazneenSayed
с помощью этой функции
public DataTable ReadExcel(string fileName, string fileExt)
{
Конн строка = строка.Пустой;
DataTable dtexcel = новый DataTable();
if (fileExt. CompareTo (". xls") = = 0)
Конн = @"поставщика=Майкрософт.Джет.Oledb для.4.0;Источник данных=" + имяфайла + ";дополнительные свойства='программы Excel 8.0;РКР=да;компания IMEX=1';"; //Для ниже версии Excel 2007
ещё
Конн = @"поставщика=Майкрософт.Туз.Oledb для.12.0;Источник данных=" + имяфайла + ";дополнительные свойства='значение Excel 12.0;HDR=нет';"; //для вышеуказанного в Excel 2007
используя (метод oledbconnection кон = новый объект oledbconnection(шт.))
{
пробовать
{
OleDbDataAdapter oleAdpt = new OleDbDataAdapter ("select * from [Sheet$]", con); / / здесь мы читаем данные из листа 1
oleAdpt.Заполнить(dtexcel); //заполнение данных Excel в объект DataTable
}
ловить { }
}
возврат dtexcel;
}
Karthik_Mahalingam
для xls?
NazneenSayed
для обоих расширений xls и xlsx по щелчку кнопки я сравниваю оба расширения
частная btnimport_Click недействительным(объект отправителя, EventArgs в электронной)
{
string filePath = строка.Пустой;
string fileExt = строка.Пустой;
Файл диалоговое окно openfiledialog = новое диалоговое окно openfiledialog(); //открываем диалог выбора файла
если (файл.ShowDialog () = = DialogResult.OK) / / если есть файл, выбранный пользователем
{
путь = файл.FileName; / / получить путь к файлу
fileExt = Path. GetExtension(filePath); / / получить расширение файла
если (fileExt.Метод compareto(".файл XLS") == 0 || fileExt.Метод compareto(".файлы XLSX") == 0)
{
пробовать
{
DataTable dtExcel = новый DataTable();
dtExcel = ReadExcel(filePath, fileExt); / / файл readexcel
dataGridView1.Видимое = истинное;
дтексель.Столбцы.Добавить ("Удалить");
дтексель.Столбцы.Добавить ("Задержка");
дтексель.Столбцы.Добавить ("Последовательность");
this.dataGridView1. DataSource = dtExcel;
}
поймать (исключение бывший)
{
Ящик для сообщений.Показать (напр. сообщение.Метод toString());
}
}
ещё
{
Ящик для сообщений.Show ("Пожалуйста, выберите только файл .xls или .xlsx.", "Warning", MessageBoxButtons.Хорошо, MessageBoxIcon.Error); / / custom messageBox для отображения ошибки
}
}
}
Karthik_Mahalingam
я протестировал этот код, он отлично работает..
в чем же проблема?
NazneenSayed
код никогда не был проблемой проблема karthik связана со значением заголовка по умолчанию которое принимает моя сетка пожалуйста проверьте это изображение https://snag.gy/Y0V8CZ.jpg
мне нужно, чтобы f1 был удален и в этом месте имя столбца filename было добавлено именно так.
Karthik_Mahalingam
сделайте снимок datatable, а также данных excel в режиме быстрого просмотра и совместного использования.
NazneenSayed
https://snag.gy/VrefXO.jpg вот данные excel, которые я импортирую и просто программно добавляю 3 других столбца, упомянутых в коде. при импорте этот заголовок столбца F1 принимается сеткой, а затем отображаются все данные excel. мне просто нужно, чтобы это предположение было удалено и заменено моим пользовательским именем, вот и все
Karthik_Mahalingam
покажите скриншот dtExcel. объект DataTable
Richard MacCutchan
Я предполагаю, что "HRD" в вашей строке 8.0-это опечатка здесь, а не в исходном коде. Если нет, то я думаю, что это будет проблемой.
Кроме этого, я не вижу ничего плохого. У меня есть очень похожий код, который отлично работает.
NazneenSayed
нет Ричард это строка подключения для импорта excel ниже 2007 года и работает просто отлично пожалуйста проверьте https://snag.gy/Y0V8CZ.jpg для фактического problem..in это изображение мне нужно, чтобы f1 был удален и в этом месте имя столбца filename было добавлено именно так.
Richard MacCutchan
Да, но "HRD" не является допустимым параметром для чтения Excel. Правильное название параметров - "HDR", для"заголовков".
NazneenSayed
да, это была опечатка, спасибо.есть ли у вас предложения, как удалить это конкретное значение по умолчанию и заменить его моим желаемым именем столбца? только имя не данные
Richard MacCutchan
Когда я загружаю свои данные в сетку, имена заголовков появляются автоматически. Я не вижу ничего явно неправильного в вашем коде или даже отличного от того, что я делаю.
NazneenSayed
ya все имена заголовков появляются автоматически, кроме того первого столбца, который мне нужно изменить как имя файла, или есть какое-то альтернативное решение ?
Richard MacCutchan
Что находится в этой колонке на листе Excel?
NazneenSayed
имя файлов, которые я импортирую, поэтому мне нужно переименовать его в filename вместо этого F1