我有 100 个 excel 文件。在每个文件中,我需要将其中的一行插入 SQL 服务器。我需要这个自动化,但最终不在乎它是应用程序中的 asp.net 还是 excel 宏。如果您有任何想法,请告诉我。
问题 我编写了 asp.net 4.0 命令行应用程序代码然后收到错误:“Microsoft.Ace.OleDb.4.0”提供程序未在本地计算机上注册。
尝试 安装 Microsoft Access Database Engine 2010 Redistributable ( http://www.microsoft.com/en-us/download/details.aspx?id=13255 ) 后,我的盒子上没有更多的 odbc 驱动程序。就像以前一样,只是 SQL 驱动程序。
我的盒子是 x64,但我安装了 x86 office,所以我安装了 Microsoft Access Database Engine 2010 Redistributable for x86。
我还检查了注册表,除了 SQL 服务器驱动程序之外,看不到任何驱动程序。
我读过几篇文章:
'Microsoft.ACE.OLEDB.12.0' 提供程序未在本地计算机中注册
虽然我将在下面包含我的代码,但我认为在我拥有驱动程序之前它不会有所作为 -
public void ImportExcelFilesForPieChart()
{
List<DataTable> listDataTables = new List<DataTable>();
List<CompanyInfo> newlist = new List<CompanyInfo>();
string sheetName = "Output";
string[] fileList = Directory.GetFiles(dropBoxExcelLocation);
foreach (string filename in fileList)
{
DataTable dt = new DataTable();
string connectionString = string.Format("Provider=Microsoft.Ace.OleDb.4.0;data source={0};Extended Properties=Excel 8.0;HDR=No;IMEX=1", dropBoxExcelLocation + filename);
using (OleDbConnection connection = new OleDbConnection(connectionString))
{
string strSQL = String.Format("SELECT 4A, 4B, 4C, 4D, 4E, 4F FROM [{0}$]", sheetName); //[A4:F4]";
OleDbCommand objCmd = new OleDbCommand(strSQL, connection);
connection.Open();
using (OleDbDataAdapter da = new OleDbDataAdapter(strSQL, connection))
{
da.Fill(dt);
listDataTables.Add(dt);
}
}
}
}