| Код | using System; using System.Data; using System.Data.OleDb; using System.Drawing; using System.Windows.Forms; using System.Xml;
namespace VingradSamples { class DataFromExcel : Form { DataGridView dgv;
[STAThread] static void Main() { Application.Run(new DataFromExcel()); }
public DataFromExcel() { this.Text = "Взаимодействие с Excel";
//Добавляем DataGridView на форму dgv = new DataGridView(); dgv.Dock = DockStyle.Fill; this.Controls.Add(dgv);
//Добавляем Меню MenuStrip ms = new MenuStrip(); ms.Dock = DockStyle.Top;
ToolStripMenuItem tsmi = new ToolStripMenuItem("Файл"); ToolStripMenuItem child = new ToolStripMenuItem("Открыть...", null, menuOpenFile_Click, Keys.Control | Keys.O); tsmi.DropDownItems.Add(child);
child = new ToolStripMenuItem("Выход", null, delegate { Close(); }, Keys.Alt | Keys.F4); tsmi.DropDownItems.Add(child); ms.Items.Add(tsmi); this.Controls.Add(ms); }
private void menuOpenFile_Click(object obj, EventArgs ea) { OpenFileDialog ofd = new OpenFileDialog(); ofd.CheckPathExists = true; ofd.Multiselect = false; ofd.Filter = "Файлы Excel|*.xls";
try { if (ofd.ShowDialog() == DialogResult.OK) { OleDbConnection oleConn = new OleDbConnection();
//HDR = Yes/No использовать или нет первую строку в качестве заголовка столбцов //IMEX = 1 - все данные будут импортированы как текст //за подробностями сюда: http://support.microsoft.com/kb/194124/EN-US/ oleConn.ConnectionString = "Provider = Microsoft.Jet.OLEDB.4.0; " + "Data Source = '" + ofd.FileName + "'; " + "Extended Properties = 'Excel 8.0; HDR = Yes; IMEX = 1'";
//Вместо 'Лист1' проставить имя нужного листа в выбранном файле string strSQL = "SELECT * FROM [Лист1$]";
oleConn.Open(); OleDbCommand oleCom = new OleDbCommand(strSQL, oleConn); OleDbDataAdapter oleDA = new OleDbDataAdapter(oleCom); DataSet ds = new DataSet(); oleDA.Fill(ds, "xlTable"); oleDA.FillSchema(ds, SchemaType.Source, "xlTable"); oleConn.Close(); dgv.DataSource = ds.Tables["xlTable"]; } } catch (Exception ex) { MessageBox.Show(ex.Message); } } } }
|
|