附加信息:Microsoft Office Access數據庫引擎找不到對象'C:\ Users \ username \ Documents \ sampleData.xls'。確保對象存在,並且正確拼寫其名稱和路徑名。Excel到DataGridView
錯誤是在
theDataAdapter.Fill(spreadSheetData);
強調這裏的樣本數據I使用(以.csv試過,.xls的,.XLSX)
Name Age Status Children
Johnny 34 Married 3
Joey 21 Single 1
Michael 16 Dating 0
Smith 42 Divorced 4
下面是相關的代碼:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using System.IO;
using System.Data.OleDb;
namespace uploadExcelFile
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void btnImport_Click(object sender, EventArgs e)
{
var frmDialog = new System.Windows.Forms.OpenFileDialog();
if (frmDialog.ShowDialog() == System.Windows.Forms.DialogResult.OK)
{
string strFileName = frmDialog.FileName;
System.IO.FileInfo spreadSheetFile = new System.IO.FileInfo(strFileName);
scheduleGridView.DataSource = spreadSheetFile.ToString();
System.Diagnostics.Debug.WriteLine(frmDialog.FileName);
System.Diagnostics.Debug.WriteLine(frmDialog.SafeFileName);
String name = frmDialog.SafeFileName;
String constr = String.Format(@"Provider=Microsoft.ACE.OLEDB.12.0;Data Source={0};Extended Properties=""Excel 12.0 Xml;HDR=YES""", frmDialog.FileName);
OleDbConnection myConnection = new OleDbConnection(constr);
OleDbCommand onlineConnection = new OleDbCommand("SELECT * FROM [" + frmDialog.FileName + "]", myConnection);
myConnection.Open();
OleDbDataAdapter theDataAdapter = new OleDbDataAdapter(onlineConnection);
DataTable spreadSheetData = myConnection.GetOleDbSchemaTable(OleDbSchemaGuid.Tables, null);
theDataAdapter.Fill(spreadSheetData);
scheduleGridView.DataSource = spreadSheetData;
}
}
}
}
scheduleGridView是DataGridViews名稱,& btnImport是導入Bu的名稱tton。
我已經安裝了2007 Office System Driver:Data Connectivity Components;這給了我AccessDatabaseEngine.exe,但從那裏我一直卡在這裏,不理解如何解決這個問題。不用說,文件路徑的完整性是正確的。有一個在路徑名中沒有奇怪的字符或者(空格,下劃線等)
迷你更新::(另一個死衚衕好像)
雖然最初的錯誤說「無法找到對象'C:\用戶\用戶名\ Documents \ sampleData.xls'「
在調試器中,異常讀取爲 當我查看詳細信息」C:\ Users \ username \ Documents \ sampleData.xls 「
所以我認爲錯誤是它沒有把路徑作爲一個迭代,但這篇文章C# verbatim string literal not working. Very Strange backslash always double 非常清楚地表明,這不是我的問題。
你有沒有試過相對路徑,即只有文件名沒有目錄? –
只是試了一下,得到了同樣的錯誤。相對而言,你的意思只是文件名。擴展名,是否正確? **其他信息:Microsoft Office Access數據庫引擎找不到對象'sampleData.xls'。 ** – JoeyG2677
只是想知道您是否仔細檢查了文件擴展名是xls,而不是xls.xls? –