如何遍历excel文件中每个sheet的内容

时间:2022-02-10 19:57:07
<asp:DropDownList ID="DropDownList2" runat="server" Width="112px">
                <asp:ListItem>a</asp:ListItem>
                <asp:ListItem>b</asp:ListItem>
                <asp:ListItem>c</asp:ListItem>
            </asp:DropDownList>
            <asp:FileUpload ID="FileUpload1" runat="server" />
            <asp:TextBox ID="TextBox1" runat="server" Height="93px" TextMode="MultiLine"></asp:TextBox>
            <asp:Button ID="Button2" runat="server" Text="Button" /></asp:Panel>

当用户在dropdownlist中选择对应的选项之后,然后通过upload的方式将excel中对应字段的数据导入到textbox中,然后进行查询操作。我的做法是将dropdownlist中对应的选项的数据放在一个excel的sheet1中,然后直接对那个excel的sheet1做操作,我感觉这样做不行,当用户误操作选择的文件中没有对应的字段或者没有sheet1的时候就直接报异常,所以想咨询一下各位大虾怎么样在导入数据之前先遍历一下用户选中的excel文件中每个sheet中是否包含有用户选中的选项对应的数据,这样就不会有那种问题了,高手指点。

5 个解决方案

#1


 OleDbConnection Excelconn =
                new OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source='" + path + "';Extended Properties='Excel 8.0;HDR=NO;IMEX=1'" + ";");
           
         
            System.Data.OleDb.OleDbCommand cmd = null;
            System.Data.OleDb.OleDbDataReader rdr = null;
            try
            {
                //打开excel
                Excelconn.Open();
                cmd = Excelconn.CreateCommand();

                //共有几个Sheet 
                DataTable dt = Excelconn.GetOleDbSchemaTable(OleDbSchemaGuid.Tables, null);

#2


我也想知道

#3


可以参考http://www.chenjiliang.com/Article/View.aspx?ArticleID=1275&TypeID=84

#4


1楼的应该可行,但我没有试过。
现在企业里使用excel访问的例子越来越多了。

#5


1 通过OLEDB访问,有可能会丢失;
2 直接读取单元格内容,不会丢失;

网上都有源码,就不贴了

#1


 OleDbConnection Excelconn =
                new OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source='" + path + "';Extended Properties='Excel 8.0;HDR=NO;IMEX=1'" + ";");
           
         
            System.Data.OleDb.OleDbCommand cmd = null;
            System.Data.OleDb.OleDbDataReader rdr = null;
            try
            {
                //打开excel
                Excelconn.Open();
                cmd = Excelconn.CreateCommand();

                //共有几个Sheet 
                DataTable dt = Excelconn.GetOleDbSchemaTable(OleDbSchemaGuid.Tables, null);

#2


我也想知道

#3


可以参考http://www.chenjiliang.com/Article/View.aspx?ArticleID=1275&TypeID=84

#4


1楼的应该可行,但我没有试过。
现在企业里使用excel访问的例子越来越多了。

#5


1 通过OLEDB访问,有可能会丢失;
2 直接读取单元格内容,不会丢失;

网上都有源码,就不贴了