Excel表到SQL表

时间:2016-06-16 06:19:03

标签: c# sql excel wcf

我从包含从UI上传的数据获取Excel工作表,我需要通过WCF服务访问该工作表,并将其中包含的数据插入到SQL表中。

请指导如何做到这一点。

我在通过WCF服务阅读Excel表时面临挑战。

3 个答案:

答案 0 :(得分:1)

我使用下面的代码从本地驱动器读取Excel工作表。将Source属性更改为Excel工作表的FTP位置。

string con = @"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=D:\MyData.xlsx;" +
                      @"Extended Properties='Excel 8.0;HDR=Yes;'";
        using (OleDbConnection connection = new OleDbConnection(con))
        {
            connection.Open();
            OleDbCommand command = new OleDbCommand("select * from [Sheet1$]", connection);
            using (OleDbDataReader dr = command.ExecuteReader())
            {
                while (dr.Read())
                {
                    // Do your things here
                }
            }
        }

注意:.xls具有数据限制,而.xlsx支持工作表中的更多数据行。如果要读取.xlsx文件

,则需要安装Microsoft Office Access数据库引擎2007

答案 1 :(得分:0)

        string UploadedFilePath = FullPathOfExcelOnTheServer;
        string ExcelConn = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + UploadedFilePath + ";Extended Properties=\"Excel 12.0;HDR=Yes;IMEX=1;FMT=Delimited\"";
        using (OleDbConnection oledbConnExcel = new OleDbConnection(ExcelConn))
        {

            oledbConnExcel.Open();
            using (OleDbDataAdapter oledbAdapterExcel = new OleDbDataAdapter("SELECT * from [" + SheetName + "$]", oledbConnExcel))
            {
                using (DataTable dtblSheetData = new DataTable())
                {
                    try
                    {
                        oledbAdapterExcel.Fill(dtblSheetData);
                    }
                    catch (Exception lexQuery)
                    {

                    }
                }
            }
            oledbConnExcel.Close();
        }

答案 2 :(得分:0)

事实是无法通过WCF服务读取excel数据。但是你可以采用这种方法来实现这个方法

你可以:

  1. 在客户端读取所有excel数据并调用WCF服务并将excel中的所有数据包含在参数中(字符串数组)?
  2. 您可以在Excel工作表中创建宏(VB)以及通过参数调用WCF服务和发送数据的内容。当你在一个地方拥有所有逻辑时。
  3. 如果客户端是.NET端您可以使用atribbute [KnowsTypeAtribbute]。然后您可以使用param类型作为Excel类型(Sheet或其他)调用WCF服务。可以通过使用某些类型的形式OpenXml dll可能有用(但我不知道是表格或其他类型是可序列化的。可序列化是必需的)
  4. 您可以通过WCF服务向WFC服务路径发送文件并从该路径读取excel文件。