如何穿过C#控制台在Excel应用程序列循环? [英] How to iterate through a column in an Excel application through C# Console?

查看:157
本文介绍了如何穿过C#控制台在Excel应用程序列循环?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我创建了一个控制台应用程序,从Excel文件读取。我要采取一切证明文件号码,并把它用于搜索目的的数组。
我能找到一个包含数据DocumentNumber例如细胞$ F $ 5。我怎样才能通过F列的行内循环?
我有以下代码:

I have created a Console Application that reads from an Excel file. I want to take all of the document numbers and place it in an array for searching purposes. I am able to find the cell that contains the data "DocumentNumber" e.g. $F$5. How can I iterate through rows within column F? I have the following code:

public static void Main(string[] args)
    {
        string address;
        string next;
        try
        {
            Excel.ApplicationClass excel = new Excel.ApplicationClass();
            Excel.Workbook workbook = excel.Workbooks.Open(@"D:\sample.xls", Missing.Value, Missing.Value,
                Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value,
                Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value,
                Missing.Value, Missing.Value);
            Excel.Worksheet worksheet = (Excel.Worksheet)workbook.Sheets["Sheet1"];
            Excel.Range docNumber = worksheet.Cells.Find("DocumentNumber", worksheet.Cells[1, 1], Excel.XlFindLookIn.xlValues,
                Excel.XlLookAt.xlPart, Missing.Value, Excel.XlSearchDirection.xlNext,
                false, Missing.Value, Missing.Value);

            if(docNumber != null){
                address = docNumber.get_Address(true, true, Excel.XlReferenceStyle.xlA1, Missing.Value, Missing.Value);
                Console.WriteLine(address);

            }
        }
        catch (Exception err)
        {
            Console.WriteLine(err.Message);
        }
    }

在此先感谢。

推荐答案

敬请考虑通过每个迭代this.It每行和列。

kindly look into this.It iterates through each and every rows and the columns.

string address;  
string next; 

try {  
    Excel.ApplicationClass excel = new Excel.ApplicationClass();
    object Missing = Type.Missing;
    FileInfo fInfo = new FileInfo(@"D:\sample.xls");

    if(fInfo.Exists) {
        Excel.Workbook workbook = excel.Workbooks.Open(@"D:\sample.xls", Missing, Missing, 
                    Missing, Missing, Missing, Missing, Missing,  
                    Missing, Missing, Missing, Missing, Missing,  
                    Missing, Missing);      
        Excel.Worksheet worksheet = (Excel.Worksheet)workbook.Sheets["Sheet1"];
        Excel.Range docNumber = worksheet.Cells.Find("DDEC", worksheet.Cells[1, 1], 
        Excel.XlFindLookIn.xlValues, Excel.XlLookAt.xlPart, Missing, Excel.XlSearchDirection.xlNext, false, Missing, Missing);     

        if(docNumber != null) {
            address = docNumber.get_Address(true, true, Excel.XlReferenceStyle.xlA1, Missing, Missing);
            docNumber = worksheet.UsedRange;                        

            for (int rCnt = 1; rCnt <= docNumber.Rows.Count; rCnt++) {
                for (int cCnt = 1; cCnt <= docNumber.Columns.Count; cCnt++) {
                    string str = (string)(docNumber.Cells[rCnt, cCnt] as Excel.Range).Value2;
                    MessageBox.Show(str);
                }
            }
            Console.WriteLine(address); 
        }     
    }
}

这篇关于如何穿过C#控制台在Excel应用程序列循环?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆