0

我用cSharp写了一个代码。它是一个控制台应用程序。我有一个包含一些数字数据的 excel 文件。我的应用程序读取 excel 文件并通过消息框显示每个单元格中的数据。例如,如果第一个单元格数据为 5,则消息框显示 5。当我单击消息框中的确定按钮时,消息框显示下一个单元格的下一个数据。

我希望从 excel 文件中读取的数据保存在某种变量中,以便它可以用于进一步的操作,例如加法或乘法或任何需要的操作。我该怎么做?任何帮助都会有很大帮助。

发布我的代码

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Data;
using System.Drawing;
using System.ComponentModel;
using Excel = Microsoft.Office.Interop.Excel;
namespace ConsoleApplication1
{
    class Program
    {
        static void Main(string[] args)
        {
            Excel.Application xlApp = new Excel.Application();
            Excel.Workbook xlWorkbook = xlApp.Workbooks.Open(@"D:/A.xlsx");
            Excel._Worksheet xlWorksheet = xlWorkbook.Sheets[1];
            Excel.Range xlRange = xlWorksheet.UsedRange;
            int rowCount = xlRange.Rows.Count;
            int colCount = xlRange.Columns.Count;
            for (int i = 1; i <= rowCount; i++)
            {
                for (int j = 1; j <= colCount; j++)
                {
                    MessageBox.Show(xlRange.Cells[i, j].Value2.ToString());
                }
            }
        }
    }
}
4

2 回答 2

1

一种方法是创建一个类似这样的类

public class MyData
{
    public int column { get; set; }
    public int row { get; set; }
    public string data { get; set; }

}


 List<MyData> listdata = new List<MyData>();
         for (int i = 1; i <= rowCount; i++)
            {
                for (int j = 1; j <= colCount; j++)
                {
                    MyData mdata = new MyData();
                    MessageBox.Show(xlRange.Cells[i, j].Value2.ToString());
                    mdata.column=j;
                    mdata.row=i;
                    mdata.data=xlRange.Cells[i, j].Value2.ToString();
                    listdata.Add(mdata);
                }
            }

然后您可以通过列表搜索并根据行列找到您想要的特定值

于 2012-06-14T06:37:48.930 回答
0

您可能需要创建类型类型的集合,或者您可能必须编写自定义类型,就像在可以保存要从 excel 读取的数据的类中一样。

在 for 循环中,实例化集合或自定义类型,读取数据并输入集合/自定义类型。

于 2012-06-14T06:21:56.133 回答