Excel中的行循环 [英] Row Looping in Excel
本文介绍了Excel中的行循环的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
如何使用C#在excel中循环一行?
How to loop a row in excel using c#?
像使用数据表一样循环
foreach(DataRow _dr in datatable.row)
{
//data
}
我正在尝试并得到这个.但它会按列循环
I'm trying and got this one. But it loops per column
foreach (Excel.Range r in usedRange)
{
// check condition:
try
{
if (Convert.ToInt32(r.Value2.ToString()) == 0)
{
// if match, delete and shift remaining cells up:
r.Delete(Excel.XlDeleteShiftDirection.xlShiftUp);
break;
}
}
catch { }
}
推荐答案
我的评论
当您遍历一个范围时,它总是从左到右而不是上下循环(除非该范围只有一列)
When you loop through a range, it always loops left to right and not up to down (unless the range has only one column)
假设您的Excel工作表如下
Let's say your excel sheet looks like this
尝试并测试
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using Excel = Microsoft.Office.Interop.Excel;
Namespace WindowsFormsApplication4
{
public partial class Form1 : Form
{
Public Form1()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
Microsoft.Office.Interop.Excel.Application xlexcel;
Microsoft.Office.Interop.Excel.Workbook xlWorkBook;
Microsoft.Office.Interop.Excel.Worksheet xlWorkSheet;
Microsoft.Office.Interop.Excel.Range xlRange;
object misValue = System.Reflection.Missing.Value;
xlexcel = new Excel.Application();
xlexcel.Visible = true;
// Open a File
xlWorkBook = xlexcel.Workbooks.Open("C:\\Book1.xlsx", 0, true, 5, "", "", true,
Microsoft.Office.Interop.Excel.XlPlatform.xlWindows, "\t", false, false, 0, true, 1, 0);
// Set Sheet 1 as the sheet you want to work with
xlWorkSheet = (Excel.Worksheet)xlWorkBook.Worksheets.get_Item(1);
xlRange = xlWorkSheet.UsedRange;
for (int i = 1; i <= xlRange.Rows.Count; i++)
{
for (int j = 1; j <= xlRange.Columns.Count; j++)
{
if (xlexcel.WorksheetFunction.CountIf(xlRange.Cells[i, j], "0") > 0)
{
MessageBox.Show("Row " + i + " has 0");
break;
}
}
}
//Once done close and quit Excel
xlWorkBook.Close(false, misValue, misValue);
xlexcel.Quit();
releaseObject(xlWorkSheet);
releaseObject(xlWorkBook);
releaseObject(xlexcel);
}
private void releaseObject(object obj)
{
try
{
System.Runtime.InteropServices.Marshal.ReleaseComObject(obj);
obj = null;
}
catch (Exception ex)
{
obj = null;
MessageBox.Show("Unable to release the Object " + ex.ToString());
}
finally
{
GC.Collect();
}
}
}
}
这就是你所得到的
这篇关于Excel中的行循环的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文