2017-08-04 294 views
4
public static void ExportData() 
    { 
     Microsoft.Office.Interop.Excel.Application xlexcel; 
     Microsoft.Office.Interop.Excel.Workbook xlWorkBook; 
     Microsoft.Office.Interop.Excel.Worksheet xlWorkSheet; 
     object misValue = System.Reflection.Missing.Value; 
     xlexcel = new Excel.Application(); 
     xlexcel.Visible = true; 
     xlWorkBook = xlexcel.Workbooks.Add(misValue); 
     xlWorkSheet = (Excel.Worksheet)xlWorkBook.Worksheets.get_Item(1); 
     xlWorkBook.Application.ScreenUpdating = false; 
     Excel.Range CR = (Excel.Range)xlWorkSheet.Cells[1, 1]; 
     CR.Select(); 
     xlWorkSheet.PasteSpecial(CR, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, true); 
     Excel.Range DR = (Excel.Range)xlWorkSheet.Columns["A:A"]; 
     DR.Select(); 
     DR.Delete(); 
     Excel.Range A1 = (Excel.Range)xlWorkSheet.Cells[1, 1]; 
     A1.Select(); 
    } 

這是我目前的功能。最後,我想從Excel中複製這個VB代碼,C#刪除空白單元格

Columns("A:A").Select 
    Selection.SpecialCells(xlCellTypeBlanks).Select 
    Selection.EntireRow.Delete 

我已經嘗試了一些不同的選擇替換「選擇」,但我得做,是使C#邊選擇空白單元格最接近的,但隨後會刪除所有內容,而不僅僅是選定的文本。

有人有我可以去的方向嗎?

也使用;

using Excel = Microsoft.Office.Interop.Excel; 

回答

0

這應該是在C#中的等價物:

Excel.Range selection = xlexcel.ActiveWindow.Selection; 
Excel.Range blankCells = selection.SpecialCells(Excel.XlCellType.xlCellTypeBlanks); 
blankCells.EntireRow.Delete(); 
+0

你好,我在AddinGlobal得到一個關於它在當前上下文中不存在的錯誤 – Zoltan

+0

對不起,我的錯。使用Excel應用程序對象,例如'xlexcel'來自上面或下面的代碼 –

0
 Microsoft.Office.Interop.Excel.Application xlexcel; 
     Microsoft.Office.Interop.Excel.Workbook xlWorkBook; 
     Microsoft.Office.Interop.Excel.Worksheet xlWorkSheet; 
     object misValue = System.Reflection.Missing.Value; 
     xlexcel = new Excel.Application(); 
     xlexcel.Visible = true; 
     xlWorkBook = xlexcel.Workbooks.Add(misValue); 
     xlWorkSheet = (Excel.Worksheet)xlWorkBook.Worksheets.get_Item(1); 
     xlWorkBook.Application.ScreenUpdating = false; 
     Excel.Range CR = (Excel.Range)xlWorkSheet.Cells[1, 1]; 
     CR.Select(); 
     xlWorkSheet.PasteSpecial(CR, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, true); 
     Excel.Range DR = (Excel.Range)xlWorkSheet.Columns["A:A"]; 
     DR.Select(); 
     DR.Delete(); 
     Excel.Range ACol = (Excel.Range)xlWorkSheet.Columns["A:A"]; 
     Excel.Range Ronge = ACol.SpecialCells(Excel.XlCellType.xlCellTypeBlanks); 
     Ronge.EntireRow.Delete(); 
     Excel.Range A1 = (Excel.Range)xlWorkSheet.Cells[1, 1]; 
     A1.Select(); 
     xlWorkBook.Application.ScreenUpdating = true; 

管理有位亨氏答案的混合和一些其他的變化來弄明白作爲這個問題的答案將不接受AddinGlobal。

如果將來有人需要上述功能,上述功能就可以使用。它會刪除列「A」中的任何空白行