我是 C# 初学者,我发现自己在使用 Microsoft Visual C# 2010 Express 的 Windows 窗体应用程序中遇到了问题。我有一个按钮可以打开文件对话框以选择特定的 Excel 工作簿,然后检索特定工作表的第一列和第五列的值。
我在Excel中完成了这个公式:
=SUMPRODUCT(('Worksheet1'!$A$2:$A$700<=99999)*('Worksheet1'!$A$2:$A$700>=90000))
Run Code Online (Sandbox Code Playgroud)
我想在 C# 中使用这个公式。任何人都可以帮助我吗?
请注意,工作表的名称与文件的名称相同,因此我可以像这样获取工作表的名称:
string name = openFileDialog1.SafeFileName.Split(new Char[] { '.' })[0];
Run Code Online (Sandbox Code Playgroud)
然后使用以下命令打开它:
Microsoft.Office.Interop.Excel.Application ExcelApp = new Microsoft.Office.Interop.Excel.Application();
ExcelApp.Visible = true;
Microsoft.Office.Interop.Excel.Workbook wbook = ExcelApp.Workbooks.Open(openFileDialog1.FileName, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing,)
Microsoft.Office.Interop.Excel.Worksheet wsheet = (Microsoft.Office.Interop.Excel.Worksheet)wbook.Sheets[name];
Run Code Online (Sandbox Code Playgroud)
你们能帮我解决这个问题吗?希望你能。
非常感谢。
我是初学C#程序员,我发现自己在Windows Form应用程序中遇到问题,我正在使用Microsoft Visual C#2010 Express.我有一个按钮,打开文件对话框以选择特定的Excel工作簿,然后将第一列和第f列的值检索为如下字符串:
string x = {"120,123,125,128,130,140,157,189,220,230,243,250"}
Run Code Online (Sandbox Code Playgroud)
然后我转换了这个字符串并添加到字符串列表中.这是代码:
var y = string.Join(string.Empty, x).Split(',');
List<string> listX = new List<string>();
foreach (var x1 in y)
{
listX.Add(x1);
}
Run Code Online (Sandbox Code Playgroud)
列表格式如下:
listX1[0] = "120";
listX1[1] = "123";
listX1[2] = "125";
Run Code Online (Sandbox Code Playgroud)
等等.现在我有这个方法可以计算出介于123和150之间的数量,这将给我5个数字(包含123个).使用的方法是这样的:
public static int Count(IList<int> set, int min, int max)
{
int count = 0;
foreach (int i in set)
if( i <= max && i >= min)
count++
return count;
}
Run Code Online (Sandbox Code Playgroud)
在这种情况下,最小值为123,最大值为150.
现在我知道我不能使用这种方法,因为我的列表(listX1)是一个字符串列表.如何使用C#设置最小值和最大值之间的数字?任何人都可以帮助我吗?
希望您能够帮助我.非常感谢.