在 Excel 的顶部插入记录
Insert Record at the top of Excel
你好,我有这个 C# 代码,它运行良好:
string fileFullPath = Dts.Variables["User::ExcelFileFullPath"].Value.ToString();
//Create Excel Connection
ConStr = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + fileFullPath + ";Extended Properties=\"Excel 12.0 XML;HDR=NO\";";
OleDbConnection cnn = new OleDbConnection(ConStr);
//Get Sheet Name
cnn.Open();
DataTable dtSheet = cnn.GetOleDbSchemaTable(OleDbSchemaGuid.Tables, null);
foreach (DataRow drSheet in dtSheet.Rows)
{
if (drSheet["TABLE_NAME"].ToString().Contains("$"))
{
if (drSheet["TABLE_NAME"].ToString().Contains("Survey"))
{
sheetname = drSheet["TABLE_NAME"].ToString();
OleDbCommand myCommand = new OleDbCommand();
string sql = null;
myCommand.Connection = cnn;
sql = "Insert into [" + sheetname + "] values('5','e')";
myCommand.CommandText = sql;
myCommand.ExecuteNonQuery();
cnn.Close();
}
}
}
但是此代码将记录插入到 excel 文件的末尾,我需要做的是将该记录插入到第一行 (A1:B1)
有什么建议吗?
您需要在 Sheet 名称旁边指定范围:
sql = "Insert into [" + sheetname + "A1:B1] values('5','e')"
可以在以下问题中找到更多附加信息:
- How to Insert Rows to Table Object Inside an Excel Sheet?
- How do I write to specific cells in Excel? ... C#, OleDb
如果您正在寻找有关使用 OLEDB 在 EXCEL 上执行 SELECT、插入、更新操作的详细文章,请参阅:
你好,我有这个 C# 代码,它运行良好:
string fileFullPath = Dts.Variables["User::ExcelFileFullPath"].Value.ToString();
//Create Excel Connection
ConStr = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + fileFullPath + ";Extended Properties=\"Excel 12.0 XML;HDR=NO\";";
OleDbConnection cnn = new OleDbConnection(ConStr);
//Get Sheet Name
cnn.Open();
DataTable dtSheet = cnn.GetOleDbSchemaTable(OleDbSchemaGuid.Tables, null);
foreach (DataRow drSheet in dtSheet.Rows)
{
if (drSheet["TABLE_NAME"].ToString().Contains("$"))
{
if (drSheet["TABLE_NAME"].ToString().Contains("Survey"))
{
sheetname = drSheet["TABLE_NAME"].ToString();
OleDbCommand myCommand = new OleDbCommand();
string sql = null;
myCommand.Connection = cnn;
sql = "Insert into [" + sheetname + "] values('5','e')";
myCommand.CommandText = sql;
myCommand.ExecuteNonQuery();
cnn.Close();
}
}
}
但是此代码将记录插入到 excel 文件的末尾,我需要做的是将该记录插入到第一行 (A1:B1)
有什么建议吗?
您需要在 Sheet 名称旁边指定范围:
sql = "Insert into [" + sheetname + "A1:B1] values('5','e')"
可以在以下问题中找到更多附加信息:
- How to Insert Rows to Table Object Inside an Excel Sheet?
- How do I write to specific cells in Excel? ... C#, OleDb
如果您正在寻找有关使用 OLEDB 在 EXCEL 上执行 SELECT、插入、更新操作的详细文章,请参阅: