互操作Excel使用范围行数不正确

本文关键字:不正确 使用范围 Excel 互操作 | 更新日期: 2023-09-27 18:09:02

我试图读取一个excel电子表格进入内存,但当我使用工作表。usedrange . rows。计数,返回值不正确。我的电子表格中有1670行数据,但行数返回694行。

var excelApp = new Microsoft.Office.Interop.Excel.Application {Visible = false};
var workbook = excelApp.Workbooks.Open(_mirrorFileName,
                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);
var worksheet = (Worksheet)workbook.Worksheets[1];
var excelRange = worksheet.UsedRange;            
var valueArray = (object[,])excelRange.Value[XlRangeValueDataType.xlRangeValueDefault];
var rowCount = worksheet.UsedRange.Rows.Count;

我应该使用userange来查找行数还是有其他方法??

互操作Excel使用范围行数不正确

试试下面的示例代码,

using System;
using System.Windows.Forms;
using Excel = Microsoft.Office.Interop.Excel; 
namespace WindowsApplication1
{
public partial class Form1 : Form
{
    public Form1()
    {
        InitializeComponent();
    }
    private void button1_Click(object sender, EventArgs e)
    {
        Excel.Application xlApp ;
        Excel.Workbook xlWorkBook ;
        Excel.Worksheet xlWorkSheet ;
        Excel.Range range ;
        string str;
        int rCnt = 0;
        int cCnt = 0;
        xlApp = new Excel.ApplicationClass();
        xlWorkBook = xlApp.Workbooks.Open("csharp.net-informations.xls", 0, true, 5, "", "", true, Microsoft.Office.Interop.Excel.XlPlatform.xlWindows, "'t", false, false, 0, true, 1, 0);
        xlWorkSheet = (Excel.Worksheet)xlWorkBook.Worksheets.get_Item(1);
        range = xlWorkSheet.UsedRange;
        rCnt = range.Rows.Count;
        cCnt = range.Columns.Count;
        xlWorkBook.Close(true, null, null);
        xlApp.Quit();
        releaseObject(xlWorkSheet);
        releaseObject(xlWorkBook);
        releaseObject(xlApp);
    }
}

声明变量Excel.Range range,然后使用它