简体   繁体   English

使用VB.NET将特定的数据库数据添加到excel文件

[英]adding specific database data to an excel file using VB.NET

I want to add data to an Excel file, i have established a connection the database and pulled the information i need into a stored procedure using SSMS. 我想将数据添加到Excel文件中,我已经建立了数据库连接,并使用SSMS将所需的信息提取到存储过程中。

I have added the columns based on the information i need, some of the rows will be static data here is my code: 我已经根据需要的信息添加了列,其中一些行将是静态数据,这是我的代码:

Private Sub ExcelOutput_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ExcelOutput.Click


Dim xlApp As Excel.Application
Dim xlWorkBook As Excel.Workbook
Dim xlWorkSheet As Excel.Worksheet
Dim xlRange As Excel.Range
Dim misValue As Object = System.Reflection.Missing.Value
Dim rNum As Random = New Random



xlApp = New Excel.Application
xlWorkBook = xlApp.Workbooks.Add(misValue)
xlWorkSheet = xlWorkBook.Sheets("sheet1")
xlRange = xlWorkSheet.UsedRange


With xlWorkSheet
    .Range("A1").Value = "Col1"
    .Range("B1").Value = "Col2"
    .Range("C1").Value = "Col3"
    .Range("D1").Value = "Col4"
    .Range("E1").Value = "Col5"
    .Range("F1").Value = "Col6"
    .Range("G1").Value = "Col7"
    .Range("H1").Value = "Col8"
    .Range("I1").Value = "Col9"
    .Range("J1").Value = "Col10"
    .Range("K1").Value = "Col11"
    .Range("L1").Value = "Col12"



    xlWorkSheet.Range("E2:E10").Value = DateTime.Now.ToString("dd-MMM-yy")
        xlWorkSheet.Range("F2:F10").Value = "Upload"
        xlWorkSheet.Range("G2:G10").Value = rNum.Next()
        xlWorkSheet.Range("I2:I10").Value = "INCLUDED"

End With

What i want to know is how i would be able to loop through a database table and populate each cell in the Excel file based on the information in each column, for example col1 will have account customer ID's that are pulled from a stored procedure. 我想知道的是如何能够遍历数据库表并根据每一列中的信息填充Excel文件中的每个单元格,例如col1将具有从存储过程中提取的帐户客户ID。 I want the use a loop to put it into the Excel file and include the information. 我希望使用循环将其放入Excel文件并包含信息。

I am new to this so would appreciate some guidance 我对此并不陌生,因此希望获得一些指导

让我们以这个为例

Let's say i have pulled the second query into a datatable. 假设我已经将第二个查询放入数据表中。 I will populate it into the excel file with that order: A1 being 1660, B1 being HT5-088, A2 being 5882, etc.... 我将按以下顺序将其填充到excel文件中:A1为1660,B1为HT5-088,A2为5882,等等。

Here's the code: 这是代码:

Dim pos As String = ""
    For i As Integer = 0 To datatable.Rows.Count - 1 'rows
        For j As Integer = 0 To datatable.Columns.Count - 1 'columns
            pos = Chr(Asc("A") + (j)) & i 'calculate the column according to j
            'after this, pos will have the right excel cell.
            xlWorkSheet.Range(pos).Value = datatable.Rows(i)(j)
        Next
    Next

The gist here is, you can use a correct string to represent the excel range... 要点是,您可以使用正确的字符串来表示excel范围...

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM