如何查找ExcelInterop中的第一个和最后一个单元格以及C#中的graphics范围

试图在Excel中绘制一个简单的csv文件:

1,2,3 4,5,6 7,8,9 

我如何以编程方式确定graphics范围是A1:C3?

我努力了

  var lastCell = worksheet.Cells.get_End(XlDirection.xlUp); 

确定最后一列,但似乎并没有工作。

以下是我用来绘制文件的代码,我只需要确定范围。

 using Microsoft.Office.InteropServices.Excel; Application application = new Application(); Workbook workbook = application.Workbooks.Open(fileName); var worksheet = workbook.Worksheets[1] as Microsoft.Office.Interop.Excel.Worksheet; // Add chart. var charts = worksheet.ChartObjects() as Microsoft.Office.Interop.Excel.ChartObjects; var chartObject = charts.Add(60, 10, 300, 300) as Microsoft.Office.Interop.Excel.ChartObject; var chart = chartObject.Chart; // Set chart range. var range = worksheet.get_Range( ); // ???????? chart.SetSourceData(range); // Set chart properties. chart.ChartType = Microsoft.Office.Interop.Excel.XlChartType.xlLine; chart.ChartWizard(Source: range, Title: graphTitle, CategoryTitle: xAxis, ValueTitle: yAxis); // Save. workbook.Save(); workbook.Close(); 

你可以尝试用这种方式来获得你的范围:

 var range = worksheet.get_Range("A1", System.Type.Missing).CurrentRegion; 

它获取从单元格A1开始的范围,直到构成范围连续区域的最后一个单元格为止。 我认为这是使用CSV文件时最好的select。

根据MSDN(VBA) :

(CurrentRegion)返回表示当前区域的Range对象。 当前区域是以空白行和空白列的任意组合为界的范围。