如何使此函数接受工作表名称作为参数以仅将一个函数用于多个工作表显示数据 [英] How to make this function accept sheet name as parameter to use only one function for multiple sheet show data

查看:88
本文介绍了如何使此函数接受工作表名称作为参数以仅将一个函数用于多个工作表显示数据的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我需要将数据从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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆