Привет, я создаю программное обеспечение, которое может открыть любой файл Excel, чтобы экспортировать его, особенно c информацию в слово, для печати после этого, но у меня возникли проблемы с поиском.
Мой код до сих пор выглядит следующим образом
private void button1_Click(object sender, EventArgs e)
{
using (OpenFileDialog ofd = new OpenFileDialog() { Filter = "Excel Woorbook 97-2003|*.xls|Excel Woorbook|*.xlsx", ValidateNames = true })
{
if (ofd.ShowDialog() == DialogResult.OK)
{
FileStream fs = File.Open(ofd.FileName, FileMode.Open, FileAccess.Read);
IExcelDataReader reader;
if (ofd.FilterIndex == 1)
reader = ExcelReaderFactory.CreateBinaryReader(fs);
else
reader = ExcelReaderFactory.CreateOpenXmlReader(fs);
reader.IsFirstRowAsColumnNames = true;
result = reader.AsDataSet();
comboBox1.Items.Clear();
foreach (DataTable dt in result.Tables)
comboBox1.Items.Add(dt.TableName);
reader.Close();
}
}
}
private void comboBox1_SelectedIndexChanged(object sender, EventArgs e)
{
dataGridView1.DataSource = result.Tables[comboBox1.SelectedIndex];
}
он открывает любой Excel и показывает листы, теперь мой код поиска работает, и у меня есть оба, но я не могу заставить их работать вместе
(dataGridView1.DataSource as DataTable).DefaultView.RowFilter = string.Format("Nombres LIKE '{0}%'", textBox1.Text);
первый Мне нужно указать имя столбца, который, поскольку у меня есть практические навыки, у меня есть лист с именами в столбцах, но моя проблема в том, что на другом листе нет заданного имени, в качестве имени у него есть только «column0», Перечислите от 0 до 6, но у меня тоже есть поиск, и он работает
StringBuilder filtro = new StringBuilder();
for (int i = 0; i < dataGridView1.Columns.Count; i++)
{
if (string.IsNullOrEmpty(filtro.ToString()))
{
filtro.Append($"{dataGridView1.Columns[i].Name} LIKE '{textBox1.Text}%'");
}
else
{
filtro.Append(" OR ");
filtro.Append($"{dataGridView1.Columns[i].Name} LIKE '{textBox1.Text}%'");
}
}
, которые работают для листа с "столбцом" и числом в качестве имени, но не могут работать с другими, что почему я думаю, что есть способ найти любой столбец любого Excel независимо от имени? столбцы в названии * 1 018 *
второй с нормальным именем в столбцах