public static void OpenFile()
{
Excel excel = new Excel(@"Testblatt.xlsx",1);
for (int i = 0; i < Excel.cntRow; i++)
{
for (int j = 0; j < Excel.cntCln; j++)
{
excel.ReadCell(i,j);
MessageBox.Show(excel.ReadCell(i, j));
}
}
excel.wb.Close();
}
在顶部的代码中,您可以看到cntRow和cntCln,它们应该是Excel电子表格中使用的最大行数和列数,IDE告诉我这些变量现在还没有实现。下面的代码是完整的类,您可以在其中看到我是如何实现它的。我只是一个初学者,所以请不要对我太苛刻。
internal class Excel
{
string path = "";
_Application excel = new _Excel.Application();
Workbook wb;
Worksheet ws;
public Excel(string path, int Sheet)
{
this.path = path;
this.wb = excel.Workbooks.Open(path);
this.ws = wb.Worksheets[Sheet];
Range usedRange = ws.UsedRange;
int cntRow = usedRange.Rows.Count;
int cntCln = usedRange.Columns.Count;
}
public string ReadCell(int i, int j)
{
i++;
j++;
if (ws.Cells[i,j].Value2 != null)
return Convert.ToString(ws.Cells[i,j].Value);
else
return "";
}
//lese festgelegte Exceldatei komplett
public static void OpenFile()
{
Excel excel = new Excel(@"Testblatt.xlsx",1);
for (int i = 0; i < Excel.cntRow; i++)
{
for (int j = 0; j < Excel.cntCln; j++)
{
excel.ReadCell(i,j);
MessageBox.Show(excel.ReadCell(i, j));
}
}
excel.wb.Close();
}
public static void ConView()
{
OpenFile();
}
}
1条答案
按热度按时间thtygnil1#
你做错了两件事。首先,Excel是你的类的名字,你的示例叫做excel,这是你需要使用的。其次,你没有发布cntCln和cntRow的属性,所以它们在你的类之外是不可见的。
按如下方式更改类:
并像这样使用它:
FORTRAN76的时代已经一去不复返了。您可以使用6个以上的字符作为变量名。实际上,从长远来看,将属性命名为RowCount和ColumnCount比命名为CntRow和CntCln要好得多。