如何查找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对象。 当前区域是以空白行和空白列的任意组合为界的范围。
- C#和Microsoft.Office.Interop.Excel – 如何用它的值replace一个公式?
- 从HRESULT:0x800A03ECexception,同时用interop打开文件时,错误消息Excel无法使用可用的资源继续执行此任务
- 服务器执行失败(HRESULTexception:0x80080005(CO_E_SERVER_EXEC_FAILURE))
- C#:打开Excel(.XLSX)WorkBook => COMException
- 如何使用Interop加载Excel Addin
- 如何改变Excel数据标签的背景颜色使用C#
- 用excel.interopreplaceexcel中的单元格值
- 使用COM Interop复制Excel工作表失去单元格颜色
- 如何将excel列从一个文件复制到另一个?