如何使此函数接受工作表名称作为参数以仅将一个函数用于多个工作表显示数据 [英] How to make this function accept sheet name as parameter to use only one function for multiple sheet show data
问题描述
我需要将数据从Excel工作表显示到Windows形式的C#组合框或datagridview
I need to show data from excel sheet to windows form c# combobox or datagridview
以便我使函数返回数据表,但我从中选择的工作表是静态的
so that i make function return data table but sheet i select from it is static
我需要使工作表名称动态化
I need to make sheet name dynamic
因为如果我有1000张纸,我需要显示其中的数据
because if i have 1000 sheet and i need to show data from it
我将编写一个函数,并且只能将工作表名称传递给该函数
I will write one function and i can pass only sheet name to this function
我的功能代码如下
public DataTable ShowExcelData()
{
OleDbConnection con = new OleDbConnection(connection);
con.Open();
string str = "select * from [MemberAR$]";
OleDbCommand com = new OleDbCommand();
com = new OleDbCommand(str, con);
OleDbDataAdapter oledbda = new OleDbDataAdapter();
oledbda = new OleDbDataAdapter(com);
DataSet ds = new DataSet();
ds = new DataSet();
oledbda.Fill(ds, "[MemberAR$]");
con.Close();
DataTable dt = new DataTable();
dt = ds.Tables["[MemberAR$]"];
return dt;
}
我需要修改上面的功能以接受动态工作表,但我不能这样做
I need to modify function above to accept dynamic sheet but i cannot do it
你能帮我吗
我需要以下功能
ShowExcelData(string sheetname)
因为如果使工作表动态化,我将编写一个函数来显示更多工作表中的数据,只有工作表名称会更改
because if i make sheet dynamic i will write one function to show data from more sheet only sheet name will changed
但是如果我有静态工作表,我将为每张工作表编写功能
but if i have static sheet i will write function for every sheet
如果我有1000张纸,我会写1000个函数(这不是首选)
if i have 1000 sheet i will write 1000 function(this is not preferred)
推荐答案
我在工作表名称中传递的内容类似
Something like this where I passed in the sheet name
using System;
using System.Data;
using System.Data.OleDb;
namespace WindowsFormsApplication2
{
public class ExcelOperations
{
public bool HasException { get; set; }
public Exception Exception { get; set; }
/// <summary>
///
/// </summary>
/// <param name="connection">Valid connection string</param>
/// <param name="sheetName">Sheet name with dollar symbol</param>
/// <returns></returns>
public DataTable ShowExcelData(string connection, string sheetName)
{
HasException = false;
DataTable dt = new DataTable();
try
{
OleDbConnection con = new OleDbConnection(connection);
con.Open();
OleDbCommand com = new OleDbCommand();
com = new OleDbCommand(
"select * from [{sheetName}
"select * from [{sheetName}
",con); OleDbDataAdapter oledbda =新的OleDbDataAdapter(); oledbda =新的OleDbDataAdapter(com); DataSet ds = new DataSet(); ds = new DataSet(); oledbda.Fill(ds,
", con); OleDbDataAdapter oledbda = new OleDbDataAdapter(); oledbda = new OleDbDataAdapter(com); DataSet ds = new DataSet(); ds = new DataSet(); oledbda.Fill(ds,
这篇关于如何使此函数接受工作表名称作为参数以仅将一个函数用于多个工作表显示数据的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!