简体   繁体   English

C#和Excel高级过滤器

[英]C# and Excel advanced filter

I'm trying to filter data from one workbook to another obne, but I get an unpsecified exception. 我正在尝试将数据从一个工作簿过滤到另一个工作簿,但是却得到了一个未剖析的异常。

I can't find many examples for adavnced filtering in excel using c# and I don't know Where's exactly my error. 我找不到许多使用C#在excel中进行高级过滤的示例,而且我也不知道我的错误在哪里。

Here's my code: 这是我的代码:

public void excel()
    {
        Excel.Application xlApp;
        Excel.Workbook xlWorkBookImport;
        Excel.Workbook xlWorkBookOriginal;
        Excel.Worksheet xlWorkSheetImport;
        Excel.Worksheet xlWorkSheetOriginal;

        xlApp = new Excel.ApplicationClass();
        xlWorkBookImport = xlApp.Workbooks.Open("c:/open.xls");
        xlWorkBookOriginal = xlApp.Workbooks.Open("c:/open1.xls");
        xlWorkBookOriginal.Activate();
        xlWorkSheetOriginal = (Excel.Worksheet)xlWorkBookOriginal.Worksheets.get_Item(1);
        xlWorkSheetOriginal.get_Range("1:7").Delete();
        xlWorkBookImport.Activate();
        xlWorkSheetImport = (Excel.Worksheet)xlWorkBookImport.Worksheets.get_Item(1);
        xlWorkSheetOriginal.Cells.AdvancedFilter(Excel.XlFilterAction.xlFilterCopy, Type.Missing, CopyToRange: "a1:a6", Unique: true);

        xlApp.Visible = true;
    }

Anyone can help me with a solution? 有人可以帮助我解决问题吗?

I got it figured out myeslf in the end: 我最终弄清楚了:

public void excel()
{         
Excel.Application xlApp;         
Excel.Workbook xlWorkBookImport;         
Excel.Workbook xlWorkBookOriginal;         
Excel.Worksheet xlWorkSheetImport;         
Excel.Worksheet xlWorkSheetOriginal;          
xlApp = new Excel.ApplicationClass();         
xlWorkBookImport = xlApp.Workbooks.Open("c:/open.xls");         
xlWorkBookOriginal = xlApp.Workbooks.Open("c:/open1.xls");             
xlWorkBookOriginal.Activate();         
xlWorkSheetOriginal = (Excel.Worksheet)xlWorkBookOriginal.Worksheets.get_Item(1);         
xlWorkSheetOriginal.get_Range("1:7").Delete(); 
// added code
Excel.Range range = xlWorkSheetOriginal.get_Range("a1:v53");  
//  
xlWorkBookImport.Activate(); 
xlWorkSheetImport = (Excel.Worksheet)xlWorkBookImport.Worksheets.get_Item(1);
// added code
xlWorkSheetImport.Activate();
Excel.Range target = xlWorkSheetImport.get_Range("a1:f1"); 
//
// modified code            
xlWorkSheetOriginal.Cells.AdvancedFilter(Action : Excel.XlFilterAction.xlFilterCopy, 
CriteriaRange: Type.Missing, CopyToRange: target, Unique: false);
//          
xlApp.Visible = true;     
} 

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM