|
分類:[C#]
・使用言語:C#
・使用ソフト:Visual Studio 2008 Pro
・内容:フォームにあるtestBoxへExcelのA1セルのデータを表示させたいと思っておりますが、以下のエラーが出ます。
・エラー内容:
'object' を 'Microsoft.Office.Interop.Excel.Worksheet' に暗黙的に変換できません。
明示的な変換が存在します。(cast が不足していないかどうかを確認してください)
・コード:
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 Microsoft.Office.Interop.Excel;
namespace WindowsFormsApplication1
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void button1_Click_1(object sender, EventArgs e) //★★←ここ単体では動作します★★
{
MessageBox.Show("ダイヤログテスト");
OpenFileDialog openFileDialog1 = new OpenFileDialog();
openFileDialog1.Filter = "Excelファイル(*.xls)|*.xls|すべてのファイル(*.*)|*.*";
openFileDialog1.InitialDirectory = @"D:\";
openFileDialog1.Title = "開くファイルを選択してください";
if (openFileDialog1.ShowDialog() == DialogResult.OK)
{
textBox1.Text = openFileDialog1.FileName;
}
}
private void button2_Click_1(object sender, EventArgs e)
{
string ExcelBookFileName = textBox1.Text;
Microsoft.Office.Interop.Excel.Application ExcelApp = new Microsoft.Office.Interop.Excel.Application();
ExcelApp.Visible = false;
Workbook wb = ExcelApp.Workbooks.Open(ExcelBookFileName,
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);
Worksheet ws1 = wb.Sheets[1]; //←★★エラー発生箇所★★
ws1.Select(Type.Missing);
Range range = ExcelApp.get_Range("A1", Type.Missing);
if (range != null)
{
var val = range.Value2; textBox2.Text += Convert.ToString(val);
}
wb.Close(false, Type.Missing, Type.Missing);
ExcelApp.Quit();
}
}
}
・色々と調べてみたのですが、当方の理解力不足で解決不可能なため、ご質問いたしました。よろしくご指導お願いいたします。
|