如何将条件置于循环中

如何将条件置于循环中

本文介绍了如何将条件置于循环中?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我是新手,也是自学成才



我打算将我的数据从我的datagridview导出到excel使用循环,但我想要的是什么时候循环到达设置条件,其他数据应放入excel中的另一行单元格



这里是我将数据导出到excel中的示例



I am a newbie and a self taught anyway

I am planning to export my data from my datagridview into excel using loop but what i want is when when the loop reach the set condition the other data should put into another row of cells in excel

here is the example when i export my data into excel

   |___A__|___B_____|____C___|__D____|___E___|_________F___________|
_
1     I      want      to      go      out    inside my house
_
2     He     want      to      go      out    From his School
_
3
_
4
_





但我想要的就是这样在我的excel中





But what I want is like this in my excel

   |___A ____|___B___|___C___|___D_____________|____E____|__F__|
_
1     I        want
_
2     He       want
_
3
_
4     to         go      out     inside my house
_
5     to         go      out      From his School
_





这是我的代码你能不能请帮助我。





here is my code Can you please help me.

Private Sub ExportingEdited()
       If ((DataGridView1.Columns.Count = 0) Or (DataGridView1.Rows.Count = 0)) Then
           Exit Sub
       End If

       Dim columnCollection As DataGridViewColumnCollection = DataGridView1.Columns
       Dim currentVisibleColumn As DataGridViewColumn = columnCollection.GetFirstColumn(DataGridViewElementStates.Visible)
       Dim lastColumnExported As DataGridViewColumn = currentVisibleColumn
       Dim visibleColumnCount As Integer = columnCollection.GetColumnCount(DataGridViewElementStates.Visible)

       Dim xlApp As Microsoft.Office.Interop.Excel.Application
       Dim xlWorkBook As Microsoft.Office.Interop.Excel.Workbook
       Dim xlWorkSheet As Microsoft.Office.Interop.Excel.Worksheet
       Dim misValue As Object = System.Reflection.Missing.Value


       xlApp = New Microsoft.Office.Interop.Excel.Application With {.Visible = True}
       xlWorkBook = xlApp.Workbooks.Add(xlPath)
       xlWorkSheet = CType(xlWorkBook.Sheets("sheet1"), Microsoft.Office.Interop.Excel.Worksheet)

       For r = 0 To DataGridView1.Rows.Count - 1
           'Reset values'
           currentVisibleColumn = columnCollection.GetFirstColumn(DataGridViewElementStates.Visible)
           lastColumnExported = currentVisibleColumn
           For c = 2 To visibleColumnCount + 1
               Dim value = DataGridView1.Rows(r).Cells(currentVisibleColumn.Index).Value
               If value IsNot vbNullString Then
                   xlWorkSheet.Cells(r + 58, c) = value.ToString()
               End If
               currentVisibleColumn = columnCollection.GetNextColumn(lastColumnExported, DataGridViewElementStates.Visible, DataGridViewElementStates.None)
               lastColumnExported = currentVisibleColumn
           Next
       Next

       xlWorkSheet.SaveAs(CType(xlPath, String))
       xlWorkBook.Close()
       xlApp.Quit()

       releaseObject(xlApp)
       releaseObject(xlWorkBook)
       releaseObject(xlWorkSheet)

       Dim p As ProcessStartInfo = New ProcessStartInfo(CType(xlPath, String))
       Process.Start(p)

   End Sub





我尝试了什么:



我试过这个



What I have tried:

I tried this

Private Sub ExportingEditedspecificrow()
      If ((DataGridView1.Columns.Count = 0) Or (DataGridView1.Rows.Count = 0)) Then
          Exit Sub
      End If

      Dim columnCollection As DataGridViewColumnCollection = DataGridView1.Columns
      Dim currentVisibleColumn As DataGridViewColumn = columnCollection.GetFirstColumn(DataGridViewElementStates.Visible)
      Dim lastColumnExported As DataGridViewColumn = currentVisibleColumn
      Dim visibleColumnCount As Integer = columnCollection.GetColumnCount(DataGridViewElementStates.Visible)

      Dim xlApp As Microsoft.Office.Interop.Excel.Application
      Dim xlWorkBook As Microsoft.Office.Interop.Excel.Workbook
      Dim xlWorkSheet As Microsoft.Office.Interop.Excel.Worksheet
      Dim misValue As Object = System.Reflection.Missing.Value


      xlApp = New Microsoft.Office.Interop.Excel.Application With {.Visible = True}
      xlWorkBook = xlApp.Workbooks.Add(xlPath)
      xlWorkSheet = CType(xlWorkBook.Sheets("sheet2"), Microsoft.Office.Interop.Excel.Worksheet)

      For r = 0 To DataGridView1.Rows.Count - 1
          'Reset values'
          currentVisibleColumn = columnCollection.GetFirstColumn(DataGridViewElementStates.Visible)
          lastColumnExported = currentVisibleColumn
          For c = 2 To visibleColumnCount + 1
              Dim value = DataGridView1.Rows(r).Cells(currentVisibleColumn.Index).Value
              If value IsNot vbNullString Then
                  xlWorkSheet.Cells(r + 58, c) = value.ToString()
                  If c = 7 Then
                      For a = 0 To DataGridView1.Rows.Count - 1
                          'Reset values'
                          currentVisibleColumn = columnCollection.GetFirstColumn(DataGridViewElementStates.Visible)
                          lastColumnExported = currentVisibleColumn
                          For b = 2 To visibleColumnCount + 1
                              value = DataGridView1.Rows(a).Cells(currentVisibleColumn.Index).Value
                              If value IsNot vbNullString Then
                                  xlWorkSheet.Cells(a + 67, b) = value.ToString()
                              End If
                          Next
                      Next
                  End If


              End If
              currentVisibleColumn = columnCollection.GetNextColumn(lastColumnExported, DataGridViewElementStates.Visible, DataGridViewElementStates.None)
              lastColumnExported = currentVisibleColumn
          Next
      Next
      xlWorkSheet.SaveAs(CType(xlPath, String))
      xlWorkBook.Close()
      xlApp.Quit()

      releaseObject(xlApp)
      releaseObject(xlWorkBook)
      releaseObject(xlWorkSheet)

      Dim p As ProcessStartInfo = New ProcessStartInfo(CType(xlPath, String))
      Process.Start(p)

  End Sub





但结果是这样的结果





but what happen is the result became like this

  |___A__|___B_____|____C___|__D____|___E___|_________F___________|
_
1     I      want      to      go      out    inside my house
_
2     He     want      to      go      out    From his School
_
3
_
4     I      I        I       I        I        I
_
5     I      I        I       I        I        I
_

推荐答案


这篇关于如何将条件置于循环中?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

08-21 11:38