【发布时间】:2021-10-06 08:24:33
【问题描述】:
我正在打开一个 CSV 文件进行阅读。我得到了这个错误:
无法将类型“object”隐式转换为“Microsoft.Office.Interop.Excel.Worksheet”。
由于某种原因,这个项目有这个错误,而我的其他必须打开 CSV 文件的项目从来没有这个错误。
我做错了什么?
我的代码:
public partial class Form1 : Form
{
//Define Excel data
_Application importExcelToDataGridViewApp;
_Workbook importExcelToDataGridViewWorkbook;
_Worksheet importExcelToDataGridViewWorksheet;
string position;
Microsoft.Office.Interop.Excel.Range importExcelToDataGridViewRange;
public Form1()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
OpenFileDialog op = new OpenFileDialog();
op.Title = "Browse for file";
op.InitialDirectory = Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments);
op.Filter = "Excel CSV File(*.csv)|*.csv|";
op.FilterIndex = 1;
if (op.ShowDialog() == DialogResult.OK)
{
try
{
importExcelToDataGridViewApp = new Microsoft.Office.Interop.Excel.Application();
importExcelToDataGridViewWorkbook = importExcelToDataGridViewApp.Workbooks.Open(op.FileName);
importExcelToDataGridViewWorksheet = importExcelToDataGridViewWorkbook.ActiveSheet; <-- ERROR HERE
importExcelToDataGridViewRange = importExcelToDataGridViewWorksheet.UsedRange;
List<string> positionList = new List<string>();
for (int i = 2; i <= importExcelToDataGridViewRange.Rows.Count; i++)
{
string username= importExcelToDataGridViewWorksheet.Cells[i, 1].Value;
int salary= (int)importExcelToDataGridViewWorksheet.Cells[i, 2].Value;
dataGridView1.Rows.Add(username, salary);
}
}
catch (Exception err)
{
ErrorWindow eWindow = new ErrorWindow();
eWindow.label4.Text = err.GetType().ToString();
eWindow.errorDetails.Text = err.Message;
eWindow.ShowDialog();
}
}
}
}
【问题讨论】: