//读取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这一行数据删除
}
}
如何删除,请大侠们详细指点,谢谢!

解决方案 »

  1.   

    http://bbs.csdn.net/topics/300258090
    参考下。
    貌似不能用sql删除
      

  2.   

    如果你不介意格式的话,那么可以把数据装到datatable中,然后把dt save回原来的文件如果你介意格式的话,
    1采用Excel.Application提供程序读取,然后,清除对应行
    2采用NPOI
    建议采用NPOI代码请自行查找
      

  3.   

    http://www.cnblogs.com/atao/category/209358.html有你要的内容
      

  4.   

    创建Excel文件.Cells[行 + 2, 列 + 1] = "";
      

  5.   

    Microsoft.Office.Interop.Excel.Application app1 = new Microsoft.Office.Interop.Excel.Application();
    Microsoft.Office.Interop.Excel.Workbook openWorkbook1 = app1.Application.Workbooks.Add("" + RDfilename + "");app1.Visible = false;Worksheet ws1 = (Microsoft.Office.Interop.Excel.Worksheet)openWorkbook1.Worksheets[1];Range range = (Range)ws1.Rows[excelRow + 1, Type.Missing];
    range.Delete(Microsoft.Office.Interop.Excel.XlDeleteShiftDirection.xlShiftUp);//删除这一列后,如何还把此excel文件保存在此目录下app1.Quit(); 
    谢谢!谢谢!
      

  6.   

    我用openWorkbook1.Save();文件就保存到我的文档,而非RDfilename,请明示!
      

  7.   

    不知道你是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录制宏得到
      

  8.   

    winform中,就像在excel删除一列后保存一样。