PDA

View Full Version : ریختن محتویات فایل اکسل در بانک



behnam-soft
دوشنبه 18 شهریور 1392, 22:23 عصر
سلام خدمت اساتید.
من یه سری اطلاعات دارم که داخل یه فایل اکسل ذخیره شدن، خب، حالا من برای اینکه بخوام این اطلاعات رو وارد برنامه ام کنم، طبیعاتا باید بیام مقدار هر سطر رو کپی کنم و بعد برم داخل برنامه ام و تو اون قسمت پیست کنم و در نهایت هم دکمه ذخیره رو بزنم تا اطلاعات داخل بانکم ثبت بشه.... خب این کار وقتی که محتویات فایل اکسل زیاد باشه، خیلی وقت گیره !!! حالا من قصد دارم به برنامه ام این امکان رو بدم که خودش بیاد آدرس فایل اکسل رو از من بگیره، و بعد با زدن دکمه ای، تموم اون اطلاعات در بانک ذخیره بشن. خب روش انجام این کار چیه ؟؟؟ چطوری باید برنامه اش رو نوشت ؟؟؟ تو چندتا سایت هم گشتم اما خب، چیزی که بتونم ازشون استفاده کنم متاسفانه نتوستم پیدا کنم . . دوستان اگر لطف کنن راهنمایی کنن ممنون میشم . . .

مثال: در فایل اکسل یه ستون داریم که اسامی دانشجویان رو داره، یه ستون دیگه نمره ها رو، حالا برنامه بیاد اینارو طی یه حرکتخیلیساده و سیک و مجلسی، وارد بانک کنه !!!

R_khaleghi
دوشنبه 18 شهریور 1392, 22:56 عصر
سلام خدمت اساتید.
من یه سری اطلاعات دارم که داخل یه فایل اکسل ذخیره شدن، خب، حالا من برای اینکه بخوام این اطلاعات رو وارد برنامه ام کنم، طبیعاتا باید بیام مقدار هر سطر رو کپی کنم و بعد برم داخل برنامه ام و تو اون قسمت پیست کنم و در نهایت هم دکمه ذخیره رو بزنم تا اطلاعات داخل بانکم ثبت بشه.... خب این کار وقتی که محتویات فایل اکسل زیاد باشه، خیلی وقت گیره !!! حالا من قصد دارم به برنامه ام این امکان رو بدم که خودش بیاد آدرس فایل اکسل رو از من بگیره، و بعد با زدن دکمه ای، تموم اون اطلاعات در بانک ذخیره بشن. خب روش انجام این کار چیه ؟؟؟ چطوری باید برنامه اش رو نوشت ؟؟؟ تو چندتا سایت هم گشتم اما خب، چیزی که بتونم ازشون استفاده کنم متاسفانه نتوستم پیدا کنم . . دوستان اگر لطف کنن راهنمایی کنن ممنون میشم . . .

مثال: در فایل اکسل یه ستون داریم که اسامی دانشجویان رو داره، یه ستون دیگه نمره ها رو، حالا برنامه بیاد اینارو طی یه حرکتخیلیساده و سیک و مجلسی، وارد بانک کنه !!!


به این لینک ها یه نگاه بنداز بدرد میخوره:

http://support.microsoft.com/kb/321686
http://stackoverflow.com/questions/5141521/how-to-insert-data-from-excel-sheet-to-sql-server-2005
http://www.mssqltips.com/sqlservertip/1430/import-excel-data-into-sql-server-using-copy-and-paste/

alireza264
شنبه 10 اسفند 1392, 22:37 عصر
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)
{

}
}
{

forodo
یک شنبه 11 اسفند 1392, 09:07 صبح
خود SQL تبدیل رو داره. با اون نمیشه کار کرد؟
در اینجا (http://barnamenevis.org/showthread.php?442078-%D8%A7%D8%B1%D9%88%D8%B1-%D9%87%D9%86%DA%AF%D8%A7%D9%85-%D8%AA%D8%A8%D8%AF%DB%8C%D9%84-Excel-%D8%A8%D9%87-SQL)