私はC#アプリケーションでExcelファイルを処理しています。このコードは動作しませんなぜ私は思ったんだけどC#Excelの範囲管理
:
int i = 7;
var value1 = ws.Range["D" + i.ToString()].Value;
私はC#アプリケーションでExcelファイルを処理しています。このコードは動作しませんなぜ私は思ったんだけどC#Excelの範囲管理
:
int i = 7;
var value1 = ws.Range["D" + i.ToString()].Value;
あなたはRange()
単一Cells()
プロパティに渡すカントので:
var value1 = ws.Range[ws.Cells[7,4]].Value;
をするためには、今私は、これが正常に動作することを発見しましたCells()
の2つのパラメータで設定する必要があります。
var value1 = ws.Range[ws.Cells[7,4],ws.Cells[7,4]].Value;
または(厳密セルプロパティを使用):
var value1 = ws.Cells[7,4].Value;
は、私はこれがあなた
using Excel = Microsoft.Office.Interop.Excel;
var value1 =(ws.Cells[7, 4] as Excel.Range).Value;
役立つws.Range[]
の最初のパラメータはA1スタイルの表記
アクセスするには
ws.Cells[7,4]
することができますこのコードを試してください:
var value1 = ws.Range["D7"].Value;
thisをチェックしてください。私は理論的には.Range
がApplication.Union
とApplication.Intersect
行うなど2つのRange
パラメータを要求すべきであると思いますが、幸いそれはかなりExcelのアドレスバーで働く任意の文字列表現を受け入れ
あなたの答えをありがとう、将来の訪問者のためのちょうど修正: 'var value1 = ws。範囲["D7"]値; ' – Zag
良い点、私は答えを更新します。 –
operator Example
Range A1:A1
Union A1,A1
Intersect A1 A1
。たとえば:
string address = ws.Range["offset(a1,1,2,3,4)"].Address[0, 0]; // "C2:F4"
また、ws.Cells[7,4]
はRange
がそう.Range(Range)
あまり意味がありませんです。
実際には、単一のセルまたは複数のセルにアクセスするために 'Range'プロパティを使うことができます。 2番目のパラメータはオプションです。チェックアウトhttps://msdn.microsoft.com/en-us/library/microsoft.office.tools.excel.worksheet.range.aspx –
"A1"はセルのプロパティではありませんセルの "A1"は 'ws.Range [ws.Cells [1,1]、ws.Cells [1,1]] '文字列を渡すときに1つのパラメータを渡すことができますが、Cellを使用するもう1つのオーバーロードには2つのパラメータが必要です – jonathana
間違っている、第2パラメータは**オプション** –