ADO查询怎样得到EXCEL表名

采用ADO查询EXCEL,需要知道表名,一般EXCEL的第一个表名为“sheet1”,如果有例外,就需要先得到表名,否则会报错。程序如下:(其中参量file为服务器中excel文件的全路径名)

Function CreateDataSource(ByVal file As String)
        Dim strConn As String = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + file + ";" + "Extended Properties=Excel 8.0;"
        Dim conn As OleDbConnection = New OleDbConnection(strConn)
        Dim tablename As String = "Sheet1$"

        conn.Open()
        Dim dt As DataTable = conn.GetOleDbSchemaTable(OleDbSchemaGuid.Tables, Nothing)
        tablename = dt.Rows(0)(2).ToString()
        conn.Close()

        Dim myCommand As OleDbDataAdapter = New OleDbDataAdapter("SELECT * FROM [" + tablename + "]", strConn)
        Dim myDataSet As DataSet = New DataSet
        myCommand.Fill(myDataSet)
        Return myDataSet
    End Function

好的,下面是一个简单的示例,演示如何使用 C# 和 NPOI 库查询数据库并将其写入 Excel 。 首先,你需要使用 ADO.NET 来连接数据库并查询数据。以下是一个简单的查询代码示例: ```csharp using System.Data; using System.Data.SqlClient; public class DbHelper { public DataTable Query(string sql) { using (SqlConnection conn = new SqlConnection("your connection string here")) { conn.Open(); using (SqlCommand cmd = new SqlCommand(sql, conn)) { using (SqlDataAdapter adapter = new SqlDataAdapter(cmd)) { DataTable dt = new DataTable(); adapter.Fill(dt); return dt; } } } } } ``` 上面的代码,`Query` 方法接收一个 SQL 查询语句,并返回一个 `DataTable` 对象,包含了查询结果。 接下来,你可以使用 NPOI 库将查询结果写入 Excel 文件。以下是一个简单的示例: ```csharp using System.IO; using NPOI.HSSF.UserModel; using NPOI.SS.UserModel; using NPOI.XSSF.UserModel; public class ExcelWriter { public void WriteToExcel(DataTable dt, string tableName, string filePath) { IWorkbook workbook = null; ISheet sheet = null; // 判断文件类型 if (Path.GetExtension(filePath) == ".xls") { workbook = new HSSFWorkbook(); } else if (Path.GetExtension(filePath) == ".xlsx") { workbook = new XSSFWorkbook(); } else { throw new Exception("不支持的文件类型"); } // 创建表格 sheet = workbook.CreateSheet(tableName); // 写入表头 IRow headerRow = sheet.CreateRow(0); foreach (DataColumn column in dt.Columns) { headerRow.CreateCell(column.Ordinal).SetCellValue(column.Caption); } // 写入内容 for (int i = 0; i < dt.Rows.Count; i++) { IRow row = sheet.CreateRow(i + 1); for (int j = 0; j < dt.Columns.Count; j++) { row.CreateCell(j).SetCellValue(dt.Rows[i][j].ToString()); } } // 保存文件 using (FileStream fs = new FileStream(filePath, FileMode.Create, FileAccess.Write)) { workbook.Write(fs); } } } ``` 上面的代码,`WriteToExcel` 方法接收一个 `DataTable` 对象、一个表名和一个文件路径参数,并将 `DataTable` 对象的数据写入 Excel 文件。 综上所述,你可以将上面两段代码结合起来,先使用 `DbHelper` 类从数据库查询数据,然后将查询结果传递给 `ExcelWriter` 类,将其写入 Excel 文件。例如: ```csharp DbHelper dbHelper = new DbHelper(); DataTable dt = dbHelper.Query("SELECT * FROM YourTable"); ExcelWriter excelWriter = new ExcelWriter(); excelWriter.WriteToExcel(dt, "YourTable", "C:\\YourFile.xlsx"); ``` 这样,你就可以将数据库的数据查询并写入 Excel 文件了。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值