2017-02-01 13 views
0

ExcelプロジェクトをDataGridViewに読み込んで、そのDataGridViewデータを ".ini"ファイルに保存するプロジェクトがあります。だから、私はVB.netの初心者ですから、あなたの助けが必要です。VB.NET 2015 - .iniファイルとして保存DataGridView

これは私のコードです。私は、DataGridViewでExcelファイルを読み込んでテキストファイルとして保存することができました。私はチュートリアルからそれをiniファイルとして保存する方法を理解できません。私は助けが必要...皆さんありがとう。

Imports System 
Imports System.IO 
Imports Microsoft.Win32 

Public Class Form1 

    Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click 

     If TextBox1.Text = "password" Then 
      Form2.Show() 
     Else 
      MessageBox.Show("Please Enter The Correct Password", "Information") 
     End If 
     Try 
       Dim MyConnection As OleDb.OleDbConnection 
       Dim Ds As System.Data.DataSet 
       Dim MyAdapter As System.Data.OleDb.OleDbDataAdapter 
       MyConnection = New System.Data.OleDb.OleDbConnection("Provider=Microsoft.ACE.OLEDB.12.0;Data Source='C:\Users\Pratto_lp3\Documents\Visual Studio 2015\SCHEDULE.xlsx';Extended Properties='Excel 12.0 Xml;HDR=YES;'") 
       MyAdapter = New System.Data.OleDb.OleDbDataAdapter("Select * from [S-BOTTOM_(1)$]", MyConnection) 
       Ds = New System.Data.DataSet 
       MyAdapter.Fill(Ds) 
       Me.DataGridView1.DataSource = Ds.Tables(0) 
      Catch ex As Exception 
       'MsgBox(ex.Message) 
       MsgBox("ExcelFile File Loaded") 
      End Try 


    End Sub 

    Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click 
     If (FolderBrowserDialog1.ShowDialog() = DialogResult.OK) Then 
      TextBox1.Text = FolderBrowserDialog1.SelectedPath 
     End If 
    End Sub 

    Private Sub Button3_Click(sender As Object, e As EventArgs) Handles Button3.Click 

     Dim writer As TextWriter = New StreamWriter("c:\users\pratto_lp3\documents\visual studio 2015\projects\DtgrdToText.ini") 

     For i As Integer = 0 To DataGridView1.Rows.Count - 2 Step +1 
      For j As Integer = 0 To DataGridView1.Columns.Count - 1 Step +1 
       writer.Write(vbTab & DataGridView1.Rows(i).Cells(j).Value.ToString & vbTab & "|") 
      Next 
      writer.WriteLine("") 
      writer.WriteLine("....................................") 
     Next 
     writer.Close() 
     MessageBox.Show("Data Saved") 

     'Dim result As String = "" 
     ''go through all rows 
     'For rownumber As Integer = 0 To DataGridView1.Rows.Count - 1 
     ' 'this gets just column 0 (the first column) 
     ' result &= DataGridView1.Rows(rownumber).Cells("f10").Value & vbCrLf 
     ' 'result += datagridview1.item(0, rownumber).tostring 
     'Next 
     ''write out the string 
     'File.WriteAllText("c:\users\pratto_lp3\documents\visual studio 2015\projects\datagrid1", result) 
     'MessageBox.Show("file saved") 
    End Sub 

    Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load 

    End Sub 

End Class 
+0

あなただけのファイルを作成する必要がある場合は、その後、File.WriteAllTextはあなたが必要なものと考えられます。 – Svekke

+0

そのiniファイルには何があると思われますか?それらの行/列データをiniファイルに配置する方法を例を挙げてください –

+0

あなたの迅速な返信ありがとうございます。しかし、私が必要とするものは、このような方法でそれらを保存するためにdatagridview内のデータです。 [外形寸法] 長= 12 高さ= 2 [私はExcelファイルからメッシュパネルの受注を読むワイヤ] クロス= 50 ロング= 15 など が、私はDataGridViewの中に入れ、その後、私は保存する必要がありますこのようなデータをiniファイルに書き込んで、それをコントロールに送ります。それは主な考えです。 –

答えて

0

これを試してみてください。

Dim writer As System.IO.StreamWriter 
writer = My.Computer.FileSystem.OpenTextFileWriter("c:\users\pratto_lp3\documents\visual studio 2015\projects\DtgrdToText.ini", True) 

For i As Integer = 0 To DataGridView1.Rows.Count - 2 Step +1 
    For j As Integer = 0 To DataGridView1.Columns.Count - 1 Step +1 
     writer.Write(vbTab & DataGridView1.Rows(i).Cells(j).Value.ToString & vbTab & "|") 
    Next 
    writer.WriteLine("") 
    writer.WriteLine("....................................") 
Next 
writer.Close() 
MessageBox.Show("Data Saved") 
0

DataGridViewのは二次元で、行とcolumsを持っています。 結果は:

[row1] 
col1=some data 
col2=soma data 

[row2] 
col1=some data1 
col2=soma data2 

これはあなたの目標ですか?

+0

はい、どうぞ..このようなもの.. –

+0

どうか私を助けてくれませんか? –

0

OK、これを試してみてください。

Dim writer As System.IO.StreamWriter 
    writer = My.Computer.FileSystem.OpenTextFileWriter("c:\users\pratto_lp3\documents\visual studio 2015\projects\DtgrdToText.ini", True) 

    For i As Integer = 0 To DataGridView1.Rows.Count - 2 Step +1 
     'write row 
     writer.WriteLine(String.Format("[row{0}]", i)) 
     For j As Integer = 0 To DataGridView1.Columns.Count - 1 Step +1 
      'write columns title and value 
      writer.WriteLine(String.Format("{0}={1}", DataGridView1.Columns(j).Name, DataGridView1.Rows(i).Cells(j).Value.ToString)) 
     Next 
     writer.WriteLine(String.Empty) 
    Next 
    writer.Close() 
+0

Perfext。ありがとうございます。上記はうまくいきました。しかし、空のセルも表示されています。空のセルをチェックし、データが入っているものだけを表示するにはifステートメントをインラインで作成する必要があります。 –

+0

データの任意のコントロールでコードを拡張することができます。 –

関連する問題