این کد خواند فایل با زدن دکمه انتخاب فایل
private void btnChooseFile_Click(object sender, EventArgs e)
{
Excel.Application excel = new Excel.Application();
openFileDialog1.Filter = "Excel Files(*.xls;*.xlsx)|*.xls;*.xlsx";
DialogResult DR = openFileDialog1.ShowDialog();
if (DR == DialogResult.OK)
{
string FilePath = openFileDialog1.FileName;
this.txtPathFile.Text = openFileDialog1.FileName;
Extension = Path.GetExtension(this.txtPathFile.Text.Trim());
File_Body = File.ReadAllBytes(this.txtPathFile.Text);
Excel.Workbook workbook = excel.Workbooks.Open(FilePath);
this.cmbListTables.Items.Clear();
foreach (Excel.Worksheet work_sheet in workbook.Worksheets)
{
this.cmbListTables.Items.Add(work_sheet.Name);
}
raddgvData.DataSource = null;
this.dgvListColums.Rows.Clear();
}
}
این کد کلید واکشی اطلاعات
private void btnReadDataFromExcel_Click(object sender, EventArgs e)
{
if(this.cmbListTables.Text.Trim()=="" || this.txtPathFile.Text.Length==0)
{
FarsiMessegeBox.Show("کاربر گرامی جدولی جهت واکشی اطلاعات فایل اکسل انتخاب نشده است", "توجّه", FMessegeBoxButtons.Ok, FMessegeBoxIcons.Exclamtion, FMessegeBoxDefaultButton.button1);
raddgvData.DataSource = null;
this.dgvListColums.Rows.Clear();
}
else
{
try
{
this.dgvListColums.Rows.Clear();
raddgvData.DataSource = null;
String constr = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + this.txtPathFile.Text + ";Extended Properties='Excel 12.0 XML;HDR=YES;';";
OleDbConnection con = new OleDbConnection(constr);
OleDbCommand oconn = new OleDbCommand("Select * From [" + this.cmbListTables.Text + "$]", con);
con.Open();
OleDbDataAdapter sda = new OleDbDataAdapter(oconn);
DataTable data = new DataTable();
sda.Fill(data);
this.raddgvData.DataSource = data;
foreach (GridViewDataColumn item in raddgvData.Columns)
{
this.dgvListColums.Rows.Add(item.Index, item.Name);
}
}
catch
{
FarsiMessegeBox.Show("کاربر گرامی، خواندن فایل اکسل با شکست مواجه شد.لطفا از بسته بودن فایل اکسل مورد نظر مطمئن باشید"+"\n\r"+"در صورت اطمینان از بسته بودن فایل اکسل، احتمالا فایل دارای مشکل می باشد.لطفا فایل مورد نظر را بررسی فرمایید", "توجّه", FMessegeBoxButtons.Ok, FMessegeBoxIcons.Exclamtion, FMessegeBoxDefaultButton.button1);
}
}
}
حالا میخوام وقتی کلید ارسال پیامک رو زدم بر اساس جدول لیست ستون های فایل اکسل، ستون هایی که تیک میخورند بره سراغ جدول اصلی اطلاعات و بر اساس تیک های ستون ها، اطلاعات جدول اصلی را بخواند و ردیف به ردیف بره تا آخر.
ممنون