使用Visual Studio自动化Excel

时间:2012-07-10 13:29:21

标签: c# visual-studio-2010 excel

我有一个非常大的Excel电子表格,我发送给我的客户对他们的产品进行更改并标记更改。当电子表格返回时,我必须使用我的主表验证更改。产品有一个唯一的代码,但在分配代码之前,新产品会被标记为新产品。我在excel中这样做是因为我的客户对excel很满意。 我正在寻找一种自动化整个过程的方法,但不知道从哪里开始。我正在使用Visual Studio Ultimate 2010并拥有SQL Server标准版。 是否有可能有一个应用程序抓取读取excel并将其放入数据库并检查或验证它是否这样做。然后分配主键并生成报告?

4 个答案:

答案 0 :(得分:1)

您需要从MSDN库中查看Automating Excel。这将使您开始使用Excel方面。然后只需在标准控制台应用程序中使用数据库并导入。

答案 1 :(得分:0)

如果您想使用C#,请使用Microsoft.Office.Interop.Excel库。如果安装了excel,则可以导入引用。 This可能有用。对于数据库部分,我无法帮助你。

答案 2 :(得分:0)

好的,如何将Excel电子表格转换为XML,然后将数据移动到您的数据库中,看看这个LINK以及此LINK和此LINK

答案 3 :(得分:0)

这只是一个想法,而不是一个完整的开发解决方案,但您可以使用OleDb访问您的Excel文件并读取其内容,就像它是一个数据库表。
然后由您来连接到您的主数据库(SqlServer)并应用将一个数据源“合并”到另一个数据源所需的逻辑

DataTable myTable = new DataTable();    
string con = @"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=D:\temp\test.xls;" + 
              "Extended Properties='Excel 8.0;HDR=No;'";

using(OleDbConnection c = new OleDbConnection(con))
{
    c.Open();
    string selectString = "SELECT * FROM [Sheet1$]";
    using(OleDbCommand cmd1 = new OleDbCommand(selectString))
    {
        cmd1.Connection = c;
        using (OleDbDataReader myReader = cmd1.ExecuteReader())
        {
            myTable.Load(myReader);
        }
    }
}

现在,来自第一个Excel工作表文件的所有数据都加载到数据表对象

中的内存中