使用c#excel互操作选择范围
我无法在C#中使用excel互操作选择范围。请让我知道我做错了什么。我对excel interop非常陌生使用c#excel互操作选择范围,c#,excel,com-interop,excel-interop,C#,Excel,Com Interop,Excel Interop,我无法在C#中使用excel互操作选择范围。请让我知道我做错了什么。我对excel interop非常陌生 static void Main(string[] args) { Excel.Application xlApp = new Excel.Application(); Excel.Workbook xlWorkbook = xlApp.Workbooks.Open("D:\\s1.xlsx"); Excel.Range xl
static void Main(string[] args)
{
Excel.Application xlApp = new Excel.Application();
Excel.Workbook xlWorkbook = xlApp.Workbooks.Open("D:\\s1.xlsx");
Excel.Range xlTestRange;
Excel._Worksheet xlWorksheet = xlWorkbook.Sheets[2];
xlTestRange = xlWorksheet.UsedRange;
xlTestRange.Select();
xlWorkbook.Save();
xlWorkbook.Close();
xlApp.UserControl = true;
xlApp.Quit();
}
以下代码在LINQPad中为我工作:
var xlApp = new Excel.Application();
var xlWorkbook = xlApp.Workbooks.Open(@"path-to-excel-file");
var xlWorksheet = (Excel.Worksheet)xlWorkbook.Sheets[1];
var xlTestRange = xlWorksheet.UsedRange;
xlTestRange.Select();
xlWorkbook.Save();
xlWorkbook.Close();
xlApp.Quit();
以下代码在LINQPad中为我工作:
var xlApp = new Excel.Application();
var xlWorkbook = xlApp.Workbooks.Open(@"path-to-excel-file");
var xlWorksheet = (Excel.Worksheet)xlWorkbook.Sheets[1];
var xlTestRange = xlWorksheet.UsedRange;
xlTestRange.Select();
xlWorkbook.Save();
xlWorkbook.Close();
xlApp.Quit();
如果关闭工作簿并退出应用程序,您如何知道选择不起作用?在代码运行时粘贴此处时,我漏掉了保存行。它会导致以下错误:mscorlib.dll中出现“System.Runtime.InteropServices.COMException”类型的未经处理的异常。其他信息:Select方法如果要调用
Quit
,则不需要设置UserControl
。我在LINQPad中运行了这段代码,它在我的测试电子表格中运行良好。请注意,Sheets[]
从1开始编制索引。仅供参考,我复制了您的代码并运行得很好。第二页中偶然出现了什么特殊情况?如果您正在关闭工作簿并退出应用程序,您如何知道选择不起作用?我在粘贴此处时漏掉了保存行。当代码正在运行时,它会导致以下错误:在中发生“System.Runtime.InteropServices.COMException”类型的未处理异常mscorlib.dll其他信息:选择范围类的方法失败如果要调用Quit
,则无需设置UserControl
。我在LINQPad中运行了这段代码,它在我的测试电子表格中运行良好。请注意,Sheets[]
从1开始编制索引。仅供参考,我复制了您的代码并运行得很好。第二页中有什么特别的地方吗?您上面的代码在C#::上不起作用(但是当我运行下面的代码时,它在Excel上运行得很好。应用程序xlApp=new Excel.Application();Excel.工作簿xl工作簿=xlApp.Workbooks.Open(“D:\\s1.xlsx”);Excel.Range xlTestRange;Excel._工作表xlWorksheet=xlWorkbook.Sheets[2];xlWorksheet.Select();xlTestRange=xlWorksheet.UsedRange;xlTestRange.Select();xlWorkbook.Save();xlWorkbook.Close();xlApp.Quit();我认为这是缺少的一行->xlWorksheet.Select();啊-它对我有效,因为我使用的是唯一的工作表。上面的代码在C#::上不起作用(但是当我运行下面的代码时,它在Excel.Application xlApp=new Excel.Application();Excel.Workbook xlApp=xlApp.Workbooks.Open上运行得很好(“D:\\s1.xlsx”);Excel.Range xlTestRange;Excel.\u工作表xlWorksheet=xlWorkbook.Sheets[2];xlWorksheet.Select();xlTestRange=xlWorksheet.UsedRange;xlTestRange.Select();xlWorkbook.Save();xlWorkbook.Close();xlApp.Quit();我想这是缺少的一行->xlWorksheet.Select();啊-它对我有效,因为我使用的是唯一的工作表。