Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何使用OpenXML从Excel中删除列_C#_Excel_Openxml_Openxml Sdk - Fatal编程技术网

C# 如何使用OpenXML从Excel中删除列

C# 如何使用OpenXML从Excel中删除列,c#,excel,openxml,openxml-sdk,C#,Excel,Openxml,Openxml Sdk,我有以下方法使用“Microsoft.Office.Interop.Excel”从Excel中删除列 public static void DeleteExcelColumn(ref Microsoft.Office.Interop.Excel.Worksheet objSheet, List<int> deleteColumns) { Microsoft.Office.Interop.Excel.Range objCols = objSheet.Column

我有以下方法使用“Microsoft.Office.Interop.Excel”从Excel中删除列

public static void DeleteExcelColumn(ref Microsoft.Office.Interop.Excel.Worksheet objSheet, List<int> deleteColumns)
    {
        Microsoft.Office.Interop.Excel.Range objCols = objSheet.Columns;
        Microsoft.Office.Interop.Excel.Range objCol = null;
        foreach (int column in deleteColumns)
        {
            objCol = (Microsoft.Office.Interop.Excel.Range)objCols[column,Type.Missing];
            objCol.EntireColumn.Delete(Microsoft.Office.Interop.Excel.XlDeleteShiftDirection.xlShiftToLeft);
        }

        System.Runtime.InteropServices.Marshal.ReleaseComObject(objCols);
        System.Runtime.InteropServices.Marshal.ReleaseComObject(objCol);
    }
public static void DeleteExcelColumn(参考Microsoft.Office.Interop.Excel.Worksheet objSheet,列出deleteColumns)
{
Microsoft.Office.Interop.Excel.Range objCols=objSheet.Columns;
Microsoft.Office.Interop.Excel.Range objCol=null;
foreach(deleteColumns中的int列)
{
objCol=(Microsoft.Office.Interop.Excel.Range)objCols[column,Type.Missing];
objCol.entireclumn.Delete(Microsoft.Office.Interop.Excel.XlDeleteShiftDirection.xlshiftoleft);
}
System.Runtime.InteropServices.Marshal.ReleaseComObject(objCols);
System.Runtime.InteropServices.Marshal.ReleaseComObject(objCol);
}
如何使用“OpenXML”实现同样的功能

public static void DeleteExcelColumnUsingOpenXML(参考DocumentFormat.OpenXml.Spreadsheet.Worksheet objSheet,列出deleteColumns)
{
SheetData SheetData=objSheet.GetFirstChild();
foreach(deleteColumns中的int列)
{
sheetData.Elements()???
//删除列
}
}

从本网站获取参考


这是指向第三方产品的链接。这个问题特别要求使用OpenXMLSDK解决方案
public static void DeleteExcelColumnUsingOpenXML(ref DocumentFormat.OpenXml.Spreadsheet.Worksheet objSheet, List<int> deleteColumns)
{
         SheetData sheetData = objSheet.GetFirstChild<SheetData>();
        foreach (int column in deleteColumns)
        {
            sheetData.Elements<DocumentFormat.OpenXml.Spreadsheet.Columns>() ???
            // delete column
        }
}