ریختن محتویات فایل اکسل در بانک
سلام خدمت اساتید.
من یه سری اطلاعات دارم که داخل یه فایل اکسل ذخیره شدن، خب، حالا من برای اینکه بخوام این اطلاعات رو وارد برنامه ام کنم، طبیعاتا باید بیام مقدار هر سطر رو کپی کنم و بعد برم داخل برنامه ام و تو اون قسمت پیست کنم و در نهایت هم دکمه ذخیره رو بزنم تا اطلاعات داخل بانکم ثبت بشه.... خب این کار وقتی که محتویات فایل اکسل زیاد باشه، خیلی وقت گیره !!! حالا من قصد دارم به برنامه ام این امکان رو بدم که خودش بیاد آدرس فایل اکسل رو از من بگیره، و بعد با زدن دکمه ای، تموم اون اطلاعات در بانک ذخیره بشن. خب روش انجام این کار چیه ؟؟؟ چطوری باید برنامه اش رو نوشت ؟؟؟ تو چندتا سایت هم گشتم اما خب، چیزی که بتونم ازشون استفاده کنم متاسفانه نتوستم پیدا کنم . . دوستان اگر لطف کنن راهنمایی کنن ممنون میشم . . .
مثال: در فایل اکسل یه ستون داریم که اسامی دانشجویان رو داره، یه ستون دیگه نمره ها رو، حالا برنامه بیاد اینارو طی یه حرکتخیلیساده و سیک و مجلسی، وارد بانک کنه !!!
نقل قول: ریختن محتویات فایل اکسل در بانک
نقل قول:
نوشته شده توسط
behnam-soft
سلام خدمت اساتید.
من یه سری اطلاعات دارم که داخل یه فایل اکسل ذخیره شدن، خب، حالا من برای اینکه بخوام این اطلاعات رو وارد برنامه ام کنم، طبیعاتا باید بیام مقدار هر سطر رو کپی کنم و بعد برم داخل برنامه ام و تو اون قسمت پیست کنم و در نهایت هم دکمه ذخیره رو بزنم تا اطلاعات داخل بانکم ثبت بشه.... خب این کار وقتی که محتویات فایل اکسل زیاد باشه، خیلی وقت گیره !!! حالا من قصد دارم به برنامه ام این امکان رو بدم که خودش بیاد آدرس فایل اکسل رو از من بگیره، و بعد با زدن دکمه ای، تموم اون اطلاعات در بانک ذخیره بشن. خب روش انجام این کار چیه ؟؟؟ چطوری باید برنامه اش رو نوشت ؟؟؟ تو چندتا سایت هم گشتم اما خب، چیزی که بتونم ازشون استفاده کنم متاسفانه نتوستم پیدا کنم . . دوستان اگر لطف کنن راهنمایی کنن ممنون میشم . . .
مثال: در فایل اکسل یه ستون داریم که اسامی دانشجویان رو داره، یه ستون دیگه نمره ها رو، حالا برنامه بیاد اینارو طی یه حرکتخیلیساده و سیک و مجلسی، وارد بانک کنه !!!
به این لینک ها یه نگاه بنداز بدرد میخوره:
http://support.microsoft.com/kb/321686
http://stackoverflow.com/questions/5...ql-server-2005
http://www.mssqltips.com/sqlserverti...opy-and-paste/
نقل قول: ریختن محتویات فایل اکسل در بانک
using System;
using System.Text;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Input;
using System.Configuration;
using System.Data;
using System.Data.OleDb;
using System.Data.SqlClient;
using System.IO;
using System.Reflection;
using System.Collections;
using OfficeOpenXml.Drawing;
using OfficeOpenXml;
using System.Threading;
using System.Windows.Threading;
class Log_Excel
{
public string FLD1 { get; set; }
public string FLD2 { get; set; }
public string FLD3 { get; set; }
public Log_Excel(string in_fld1, string in_fld2, string in_fld3)
{
this.FLD1 = in_fld1;
this.FLD2 = in_fld2;
this.FLD3 = in_fld3;
}
}
Microsoft.Win32.OpenFileDialog ofd = new Microsoft.Win32.OpenFileDialog();
string CStr = ConfigurationManager.ConnectionStrings["MyConnectionString"].ConnectionString;
DataTable DtTbl_Excel = new DataTable();
خواندن از Excel و ریختن در DataGrid
private void ReadFromExcel ()
{
ofd.Filter = “Excel Files(*.XLSX;*.XLS;|*.XLSX;*.XLS;” + “|All Files (*.*)|*.*”;
ofd.Multiselect = false;
bool showdgl = ofd.ShowDialog().Value;
if (showdgl == true)
{
string strConn = “Provider=Microsoft.Jet.OLEDB.12.0; Data Source = “ + ofd.FileName.Trim() + “ ; Extended Properties=\”Excel 12.0; HDR = YES ;\””;
string filePath = ofd.FileName.Trim();
string sheetName = “Sheet1”;
using (ExcelPackage excelPkg = new ExcelPackage())
using (FileStream stream = new FileStream(filePath, FileMode.Open))
{
excelPkg.Load(stream);
ExcelWorksheet oSheet = excelPkg.Workbook.Worksheets[sheetName];
DtTbl_Excel = WorksheetToDataTable(oSheet);
dataGrid1.ItemsSource = WorksheetToDataTable(oSheet).DefaultView as DataView;
}
}
}
تبدیل داده خوانده شده از Excel به DataTable
private DataTable WorksheetToDataTable(ExcelWorksheet oSheet)
{
int totalRows = oSheet.Dimension.End.Row;
int totalCols = oSheet.Dimension.End.Column;
DataTable dt = new DataTable(oSheet.Name);
DataRow dr = null;
try
{
for (int i = 1; i <= totalRows; i++)
{
if (i > 1) dr = dt.Rows.Add();
for (int j = 1; j <= totalCols; j++)
{
if (i == 1)
dt.Columns.Add(oSheet.Cells[i, j].Value.ToString().Trim());
else
dr[j - 1] = oSheet.Cells[i, j].Value.ToString().Trim();
}
}
}
catch (Exception)
{
MessageBox.show("خطای کلیدی !!! نام ستون تکرای و جود دارد و یا تعداد مشخـصـه غلط است");
}
return dt;
}
نوشتن داده خوانده شده از Excel به Table
private void WritetoTable()
{
SqlConnection _Conn = new SqlConnection(CStr);
// Open the Database Connection
_Conn.Open();
DataRow DtRow;
for (int i = 0; i < DtTbl_Excel.Rows.Count; i++)
{
DtRow = DtTbl_Excel.Rows[i];
string key_Str;
try
{
key_Str = DtRow[1].ToString().Trim() + Date_Class.persianDate_To_Number(DtRow[0].ToString().Trim());
string _Insert = @"insert into Tbl_Info_Log
( Cod_Bus_Date , Date_Log , Cod_BUS, Tarakonesh)
Values( " + key_Str + " , '" + Date_Class.Number_To_persianDate(Date_Class.persia nDate_To_Number(DtRow[0].ToString().Trim())) + "' , " + Clock_Class.Null_To_Zero(DtRow[1].ToString().Trim()) + " , " + Clock_Class.Null_To_Zero(DtRow[2].ToString().Trim()) + " )";
// Initialize the command query and connection
SqlCommand _cmd = new SqlCommand(_Insert, _Conn);
// Execute the command
_cmd.ExecuteNonQuery();
}
catch (Exception)
{
}
}
{
نقل قول: ریختن محتویات فایل اکسل در بانک
خود SQL تبدیل رو داره. با اون نمیشه کار کرد؟
در اینجا