Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/305.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# Excel导入自动化_C#_.net_Excel_Import From Excel - Fatal编程技术网

C# Excel导入自动化

C# Excel导入自动化,c#,.net,excel,import-from-excel,C#,.net,Excel,Import From Excel,我完全陷入停顿:我需要将数据从Excel导入Microsoft SQL Server 2008数据库。某些列(从特定行开始)包含我需要提取并正确插入到数据库中的数据信息,文件本身作为流提供 我一直在研究Microsoft的解决方案Excel 12.0对象库,但它似乎依赖于生产环境中安装的Office?或者,是否可以将应用程序部署到未安装Office的环境中 我也浏览了一下,但它似乎不适用于xlsx或Office 2010文档,抱怨“文件签名错误” 你有什么建议?应该可以。您是否使用过: //2。

我完全陷入停顿:我需要将数据从Excel导入Microsoft SQL Server 2008数据库。某些列(从特定行开始)包含我需要提取并正确插入到数据库中的数据信息,文件本身作为流提供

我一直在研究Microsoft的解决方案Excel 12.0对象库,但它似乎依赖于生产环境中安装的Office?或者,是否可以将应用程序部署到未安装Office的环境中

我也浏览了一下,但它似乎不适用于xlsx或Office 2010文档,抱怨“文件签名错误”

你有什么建议?

应该可以。您是否使用过:

//2。从OpenXml Excel文件读取(2007格式;*.xlsx)
IExcelDataReader excelReader=ExcelReaderFactory.CreateOpenXmlReader(流);
要打开xlsx文件?

应该可以。您是否使用过:

//2。从OpenXml Excel文件读取(2007格式;*.xlsx)
IExcelDataReader excelReader=ExcelReaderFactory.CreateOpenXmlReader(流);
要打开您的xlsx文件?

我用于解析excel文件。通常,是的,部署到的计算机需要安装Office,这将把互操作库放在全局程序集缓存中。我通过在部署项目中复制DLL来解决这个问题。您还可以尝试将互操作库嵌入到程序集中

下面是一个使用互操作的示例:

我用于解析excel文件。通常,是的,部署到的计算机需要安装Office,这将把互操作库放在全局程序集缓存中。我通过在部署项目中复制DLL来解决这个问题。您还可以尝试将互操作库嵌入到程序集中


下面是一个使用互操作的示例:

如果您只是在读取数据,并且知道您想要从中得到什么,我通常只使用OLEDB读取数据,然后使用它执行我需要的操作

使用DbDataReader快速浏览行,给出和SheetName的快速示例

using System.Data.Common;
using System.Data.OleDb;

using (OleDbConnection connection = new OleDbConnection(ConnectionString))
{
    connection.ConnectionString = ConnectionString;
    connection.Open();
    using (DbCommand command = connection.CreateCommand())
    {
        command.CommandText = "SELECT * FROM [" + SheetName + "]";
        using (DbDataReader DR = command.ExecuteReader())
        {
            while (DR.Read())
            {
            // Read your data here.
            }
        }
    }
}

这里可以找到不同的方法。

如果你只是在读取数据,并且知道你想要从中得到什么,我通常只使用OLEDB读取数据,然后用它做我需要做的事情

使用DbDataReader快速浏览行,给出和SheetName的快速示例

using System.Data.Common;
using System.Data.OleDb;

using (OleDbConnection connection = new OleDbConnection(ConnectionString))
{
    connection.ConnectionString = ConnectionString;
    connection.Open();
    using (DbCommand command = connection.CreateCommand())
    {
        command.CommandText = "SELECT * FROM [" + SheetName + "]";
        using (DbDataReader DR = command.ExecuteReader())
        {
            while (DR.Read())
            {
            // Read your data here.
            }
        }
    }
}

在这里可以找到不同的方法。

您是否有机会尝试:或者?
它为您提供了一个全面的API,可以在目标计算机上不安装MS office的情况下操作与Microsoft Excel兼容的电子表格。

您是否有机会尝试:或者?
它为您提供了一个全面的API,可以在目标计算机上不安装MS office的情况下操作与Microsoft Excel兼容的电子表格。

是手动还是编程?一次还是重复?最简单的方法是保存文件,然后在Mgmt Studio中右键单击数据库根目录,然后选择任务->导入数据…手动还是编程?一次还是重复?最简单的方法是保存文件,然后在Mgmt Studio中右键单击数据库根目录并选择任务->导入数据…感谢您的回答!这种方法的问题是,在执行导入过程时,我可能必须将文件临时存储到服务器?该文件作为输入流接收。感谢您的回答!这种方法的问题是,在执行导入过程时,我可能必须将文件临时存储到服务器?该文件作为输入流接收。我收到了,但我使用的Excel文件显然已损坏!谢谢你让我再试一次!是的,但我使用的Excel文件显然已损坏!谢谢你让我再试一次!