C# 创建Excel文件和将数据插入工作表时出现的问题
我正在尝试创建一个excel文件并将数据插入excel文件。excel文件的创建没有失败,但当我尝试将数据插入excel文件中的工作表时,会出现以下错误: Microsoft Office Access数据库引擎找不到对象“Sheet1$”。确保对象存在,并且正确拼写其名称和路径名。 这是我的代码:C# 创建Excel文件和将数据插入工作表时出现的问题,c#,.net,oledb,C#,.net,Oledb,我正在尝试创建一个excel文件并将数据插入excel文件。excel文件的创建没有失败,但当我尝试将数据插入excel文件中的工作表时,会出现以下错误: Microsoft Office Access数据库引擎找不到对象“Sheet1$”。确保对象存在,并且正确拼写其名称和路径名。 这是我的代码: private void exportToExcel_Click(object sender, EventArgs e) { string excelPat
private void exportToExcel_Click(object sender, EventArgs e)
{
string excelPath = Environment.GetFolderPath(Environment.SpecialFolder.Desktop) + @"\TrackITExportFile - " + DateTime.Today.ToShortDateString();
File.Exists(excelPath);
Microsoft.Office.Interop.Excel.Application excel = null;
Microsoft.Office.Interop.Excel._Workbook workBook = null;
Microsoft.Office.Interop.Excel.Sheets sheet = null;
Microsoft.Office.Interop.Excel._Worksheet newSheet = null;
object misValue = Missing.Value;
excel = new Microsoft.Office.Interop.Excel.Application();
excel.Visible = true;
workBook = (Microsoft.Office.Interop.Excel._Workbook)(excel.Workbooks.Add(Missing.Value));
sheet = workBook.Sheets as Microsoft.Office.Interop.Excel.Sheets;
newSheet = (Microsoft.Office.Interop.Excel.Worksheet)sheet.Add(sheet[1], Type.Missing, Type.Missing, Type.Missing);
workBook.SaveAs(excelPath, Microsoft.Office.Interop.Excel.XlFileFormat.xlWorkbookDefault,
misValue, misValue, misValue, misValue, Microsoft.Office.Interop.Excel.XlSaveAsAccessMode.xlExclusive, misValue, misValue, misValue, misValue, misValue);
workBook.Close();
excel.Quit();
releaseObject(workBook);
releaseObject(excel);
releaseObject(newSheet);
releaseObject(sheet);
InsertData(excelPath);
}
public void InsertData(string fileName)
{
System.Data.OleDb.OleDbConnection connection;
System.Data.OleDb.OleDbCommand myCommand = new System.Data.OleDb.OleDbCommand();
string sql = null;
connection = new System.Data.OleDb.OleDbConnection("Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + fileName + ";Extended Properties=\"Excel 12.0;ReadOnly=False;HDR=YES;\"");
connection.Open();
myCommand.Connection = connection;
sql = "Insert into [Sheet1$](A1) Values ('" + ds.Tables[0].Columns[0] + "')";
myCommand.CommandText = sql;
myCommand.ExecuteNonQuery();
connection.Close();
}
我创建的文件是否有误?能否检查在MS interop中创建的excel文件是否创建了命名的工作表“Sheet1”?这是excel文件创建后的样子,而不是创建excel文件,为什么不创建一个模板,然后更新过程将跟进您的查询?但是我也会检查这个问题。我已经考虑过了,但是我可以在发布的应用程序中添加模板文件吗?是的,您可以在代码中设置它的路径,或者为了安全起见,您可以设置它到应用程序配置的路径。