gpt4 book ai didi

c# - Excel 互操作不接受带逗号的范围

转载 作者:行者123 更新时间:2023-11-30 20:43:38 25 4
gpt4 key购买 nike

根据 the documentation Workbook.Range,您可以在第一个参数中提供逗号以提供并集。

但是,以下代码在获取范围的行上抛出一个带有 HRESULT 0x800A03ECCOMException:

using Microsoft.Office.Interop.Excel;

public void RangeWithCommas() {
var excel = new Application();
var wb = excel.Workbooks.Add(xlWBATemplate.xlWBATWorksheet);
var ws = (Worksheet)wb.Worksheets[1];

var range = ws.Range["A1,A2"]; // this throws an exception
Console.WriteLine(range.Address[false,false]);

ws.Delete();
wb.Close(false);
excel.Quit();
}

我该如何做或解决这个问题?

附言我知道 Application.Union但我非常不想使用它,因为没有简单的方法来提供可变数量的参数。

最佳答案

正如 AnalystCave.com 指出的那样,某些 Excel COM 方法是特定于区域设置的。访问 COM 方法时需要使用区域列表分隔符。

此代码应该在所有语言环境中都能正常工作:

using Microsoft.Office.Interop.Excel;

public void RangeWithCommas() {
var excel = new Application();
var wb = excel.Workbooks.Add(xlWBATemplate.xlWBATWorksheet);
var ws = (Worksheet)wb.Worksheets[1];

var rangestring = String.Join((string)excel.International[XlApplicationInternational.xlListSeparator], new [] {"A1","A2"});

var range = ws.Range[rangestring];
Console.WriteLine(range.Address[false,false]);

ws.Delete();
wb.Close(false);
excel.Quit();
}

关于c# - Excel 互操作不接受带逗号的范围,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30351400/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com