C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

Re[2]: 暗黙的に変換できません。明示的な変換が存在ます。のエラー


(過去ログ 95 を表示中)

[トピック内 3 記事 (1 - 3 表示)]  << 0 >>

■56921 / inTopicNo.1)  暗黙的に変換できません。明示的な変換が存在ます。のエラー
  
□投稿者/ C#入門者 (1回)-(2011/02/05(Sat) 01:45:16)

分類:[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(); 
        } 
    
    
    } 
} 

・色々と調べてみたのですが、当方の理解力不足で解決不可能なため、ご質問いたしました。よろしくご指導お願いいたします。

引用返信 編集キー/
■56922 / inTopicNo.2)  Re[1]: 暗黙的に変換できません。明示的な変換が存在ます。のエラー
□投稿者/ たか@WEB屋 (8回)-(2011/02/05(Sat) 08:41:30)
Excel操作はやったことないのでわかりませんが
明示的にキャストしろ、っていわれたなら以下のように明示的にキャストしてみたらいかがでしょう?

Worksheet ws1 = (Worksheet)wb.Sheets[1]; 


引用返信 編集キー/
■56940 / inTopicNo.3)  Re[2]: 暗黙的に変換できません。明示的な変換が存在ます。のエラー
□投稿者/ C#入門者 (2回)-(2011/02/05(Sat) 23:48:42)
たか@WEB屋 さん

ご返答ありがとうございます。
上記の記述で無事に動作いたしました。

本当にありがとうございました。



解決済み
引用返信 編集キー/


トピック内ページ移動 / << 0 >>

このトピックに書きこむ

過去ログには書き込み不可

管理者用

- Child Tree -