删除excel表中指定的一行
//读取excel表中一个值,然后在dbf表中查询,如果在dbf表中不存在这个值,就把excel表中这一行删除
for (int excelRow = excel开始行; excelRow < excel总行; ++excelRow)
{
string excelData = myExcelDataSet.Tables["[Sheet1$]"].Rows[excelRow][Excel列].ToString();//读取excel表一个值
//在dbf表中核对
OleDbConnection conn = new OleDbConnection(@"Provider=vfpoledb;Data Source=" + Text.ToString() + ";Extended Properties=dBASW IV;User ID=;Password=");
conn.Open();
System.Data.OleDb.OleDbCommand cmd = new OleDbCommand("select * from '" + Text.ToString() + "' where " + DBFDN1 + "='" + excelData + "'", conn);
OleDbDataReader dr = cmd.ExecuteReader();
if (dr.HasRows == false)
{
从excel表中excelRow这一行数据删除
}
}
如何删除,请大侠们详细指点,谢谢!
------解决方案--------------------http://bbs.csdn.net/topics/300258090
参考下。
貌似不能用sql删除
------解决方案--------------------如果你不介意格式的话,那么可以把数据装到datatable中,然后把dt save回原来的文件
如果你介意格式的话,
1采用Excel.Application提供程序读取,然后,清除对应行
2采用NPOI
建议采用NPOI
代码请自行查找
------解决方案--------------------直接给那行赋值为空不是更简单?代码最后一种可以指定行数
------解决方案--------------------http://www.cnblogs.com/atao/category/209358.html
有你要的内容
------解决方案--------------------创建Excel文件.Cells[行 + 2, 列 + 1] = "";
------解决方案--------------------不知道你是WINFORM程序还是WEB程序
WINFORM程序
如:
sheet.get_Range(sheet.Cells[1, 1], sheet.Cells[10, 10]).Delete(-4159);
WEB程序:
xlSheet.Rows(11).Delete(-4162);
析:
类似-4159 和 -4162 的值可以在EXCEL录制宏得到