提问者:小点点

无法读取Excel单元格中的文本?


我正在尝试获取输入到excel工作表中特定单元格中的字符串值。我的代码如下:

Excel.Application excel_app = new Excel.Application();
Excel.Workbook dashboard = excel_app.Workbooks.Open(Filename:@"H:\charge_code_project\test_dashboard.xlsb", ReadOnly: true);
Excel.Worksheet worksheet = (Excel.Worksheet)dashboard.Worksheets[package_type];
Excel.Range range = worksheet.UsedRange;
int rowCount = range.Rows.Count;
string cell_text = worksheet.Cells[10, 10].Text;

当我尝试构建时,在最后一行收到以下错误:

Error   CS1061  'object' does not contain a definition for 'Text' and no accessible extension method 'Text' accepting a first argument of type 'object' could be found (are you missing a using directive or an assembly reference?)

我在以前的项目中使用过这种从excel文件中读取文本的方法,并且已经奏效,所以我知道。text是存在的。我看不出我以前使用它的方式和我现在使用它的方式有什么不同。我相信我已经包括了所有必要的程序集引用和using语句:

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using System.Runtime.InteropServices;
using Excel = Microsoft.Office.Interop.Excel;
using System.Reflection;
using System.Windows.Forms.VisualStyles;
using System.IO;

我添加了以下程序集引用:

Microsoft Excel 16.0 Object Library
Microsoft Office 15.0 Object Library 
Microsoft Office 16.0 Object Library
Microsoft Visual Basic for Applications Extensibility 5.3
OLE Automation

有人能帮我看看我做错了什么吗?


共1个答案

匿名用户

由于Range对象没有Text属性,您将获得异常。

您应该使用Value属性来获取单元格/区域的值。

示例代码:

string cell_text = ((Range)worksheet.Cells[10, 10]).Value.ToString();