1 ضمیمه
مشکل در ورود اطلاعات از فایل Excel
سلام.
من یه فایل Excel دارم. چه وقتی با کد زیر می خونمش و توی DataGridView نمایش می دم و چه وقتی که با Sql Server اونرو Import می کنم و توی جدول یه دیتابیس می ریزم بعضی از Cell ها مقدارش Null می شه، این مشکل برای ستونهایی پیش میاد که دو نوع مقدار integer و string توی اونها ذخیره شده. من حتی فایل رو توی Microsoft Excel هم باز کردم و فرمت همه Cell ها رو Text کردم، اما بازهم خیلی از Cell ها بعد از خونده شدن مقدارشون Null می شه!!!!!!!!!!!:عصبانی++::عصبانی++::ع صبانی++::عصبانی++:
Dim Conn AsNew OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0; Data Source=C:\Packing_List.xls; Extended Properties=""Excel 8.0""")
Dim DS AsNew DataSet
Dim Result AsNew DataTable("Result")
DS.Tables.Add("Result")
Dim CMD AsString = "Select * From [Sheet1$]"
Dim OLEDBDA AsNew OleDbDataAdapter(CMD, Conn)
OLEDBDA.Fill(DS, "Result")
Me.DataGridView1.DataSource = DS
Me.DataGridView1.DataMember = "Result"
1 ضمیمه
Microsoft.Office.Interop.Excel
سلام، با عرض تشکر از اینکه کسی جواب سوال اول من رو نداد، سوال دوم رو می پرسم.
کسی با Microsoft.Office.Interop.Excel کار کرده، یعنی از این طریق یک فایل Excel رو بخونه و به WorkSheet اون دسترسی پیدا کنه؟؟؟؟
من مشکل بالا رو فهمیدم، توی سایت Microsoft توی یکی از Forum ها نوشته بود که چون DataType رو از اولین سطر فایل Excel میفهمه، اگر توی اون ستون که اولین سطرش یه String اه، مقدار Integer داشتین، باید با استفاده از کد زیر به اول همه اون سلول ها مثلا یک آپستروف اضافه کنید تا اونا هم String بشن و خونده بشن :
Public Sub AddApostrophe(rngCol As Excel.Range)
Dim rngCell As Excel.Range, varCellValue As Variant
Set rngCol = rngCol.Columns(1)
For Each rngCell In rngCol.Cells
If Not IsEmpty(rngCell) Then
If IsNumeric(rngCell) Then
varCellValue = rngCell.Value
varCellValue = "'" & varCellValue
rngCell = varCellValue
End If
End If
Next rngCell
End Sub
اما من نمی دونستم اطلاعات فایلم رو چجوری باید بریزم توی Range . یعنی چجوری فایل Excel رو به اینها منعقد - Bind کنم. کد زیر رو هم پیدا کردم و اجرا کردم :
PrivateFunction GetSheetNames(ByVal path AsString) As System.Windows.Forms.ListBox
Dim lst AsNew System.Windows.Forms.ListBox
'Note: this will not work for Excel 2007 (.xlsx) workbooks.
If IO.File.Exists(path) AndAlso IO.Path.GetExtension(path) = ".xls"Then
Dim app AsNew Excel.Application
Dim WB As Excel.Workbook
Try
WB = app.Workbooks.Open(path, Type.Missing, Type.Missing, Type.Missing, Type.Missing, , Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing)
If WB IsNotNothingThen
ForEach ws As Excel.Worksheet In WB.Sheets
lst.Items.Add(ws.Name)
Next
WB.Close()
System.Runtime.InteropServices.Marshal.ReleaseComO bject(WB)
WB = Nothing
EndIf
Catch ex As Exception
MsgBox(ex.Message)
Finally
System.Runtime.InteropServices.Marshal.ReleaseComO bject(app)
app = Nothing
EndTry
EndIf
Return lst
EndFunction
اما بعد از اجرای این کد این Error رو میده :
:عصبانی++::عصبانی++::عصبانی++:: صبانی++::عصبانی++:
نقل قول: مشکل در ورود اطلاعات از فایل Excel
خيلي ماهي :قلب:
من دو روز تمام به اندازه 18 ساعت
اين مشكل را داشتم و اكسل نصب مي كردم و فكر كردم اشكال از dll interop است
خيلي متشكرم كه شما آن را برطرف كردييد:تشویق::تشویق:
نقل قول: مشکل در ورود اطلاعات از فایل Excel
ممنون عزیزم
الهی فدات بشم من
نقل قول: مشکل در ورود اطلاعات از فایل Excel
دمت گرم خیلی مردی واقعا اگر این پست رو دیده بودم لاقل بهت دلداری میدادم
برای اینکه جمله دوستمون رو کامل کنم
هم ماهی هم خوشگلی
نقل قول: مشکل در ورود اطلاعات از فایل Excel
آقایون ممنون از پست هاتون ، مخلص همه شما هم هستیم.
نقل قول: مشکل در ورود اطلاعات از فایل Excel
نقل قول: مشکل در ورود اطلاعات از فایل Excel
سلام دوستان من یک سئوالی دارم اگر میشه راهنماییم کنین که چگونه میتونم کدی بنویسم که از داخل خود برنامه Vb.net یا C# پایگاه داده خودم رو در sql Server با یک فایل Excel جدا Update کنم خیلی ممنون میشم .