2017-08-04 19 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から空白行が削除されます

関連する問題