0

我在 VisualStudio 2010 中为 Excel 2007 做一个 ExcelAddin。在我的 Excel 工作簿中,我有一个名为 MyRange 的命名范围。它从单元格 C10 到 M25。如何在 MyRange 中仅读取具有价值的单元格。注意我不想从其他单元格中读取任何内容,只在 MyRange 中?我想将其中具有值的单元格读入 Word 文档。我想我已经弄清楚了。

我曾尝试使用 UsedRange,但它选择了 A1-M25 中的所有内容(我只想选择具有 C10-M25 值的单元格)。这是我到目前为止得到的。

string FileName = @"C:\MyFile.xlsx";
Excel.Application xlApp = xlApp = new Excel.Application();
Excel.Workbook xlWorkBook = null;
Excel.Worksheet xlWorkSheet = null;

xlWorkBook = xlApp.Workbooks.Open(FileName);
xlWorkSheet = (Excel.Worksheet)xlWorkBook.Worksheets.get_Item(1);

object cell1 = "C10", cell2 ="M25";
//Here are some different versions that I tried. I also tried to use the SpecialCell    //method but it didn´t seem to work.
Excel.Range namedRange = (Excel.Range)xlWorkSheet.get_Range("C10", "M25");
Excel.Range last = (Excel.Range)xlWorkSheet.UsedRange;
Excel.Range usedRange = (Excel.Range)xlWorkSheet.get_Range("C10", last);

非常感谢任何帮助。谢谢你。

4

1 回答 1

0

要从“namedRange”中读取每个单元格值,您可以像这样遍历范围:

foreach (Excel.Range cell in namedRange.Cells)
            {
                if (String.IsNullOrEmpty(cell.Value.ToString()))
                {
                    string thisCellHasContent = cell.Value.ToString();
                    string thisCellAddress = cell.Address.ToString();
                }
            } 
于 2012-07-11T16:47:10.863 回答