我有一个Excel表格,我已经从我的代码中命名了我必须填写的单元格.命名字段的原因是客户可以重新排列单元格.
为了使它更清楚:我使用下面显示的字段命名单元格.

我现在的问题是我不知道如何使用office interop从C#中解决这些字段.
Range r = Sheet.get_Range("M_Leitung", Type.Missing);
Run Code Online (Sandbox Code Playgroud)
不起作用.由于我没有定义任何范围,只需要插入值的单个单元格,我需要一个返回指定单元格的函数.
我只是模拟你的场景,下面的代码就像一个魅力(我在sheet2中将A1标记为M_Leitung):
编辑:更新的代码 - 当您有多个工作表时,您需要引用工作簿范围中的名称,这将返回完全限定的地址(因此结果范围知道从哪个工作表中选择地址)
private static void Main(string[] args)
{
string FileName = Path.Combine(Path.GetDirectoryName(System.Windows.Forms.Application.ExecutablePath), "Book2.xlsx");
Application excelApp = new Application();
Workbooks excelWorkbooks = excelApp.Workbooks;
Workbook report = excelWorkbooks.Open(FileName, 0, false, 5, "", "", true, XlPlatform.xlWindows, "", true, false, 0, false, false, false);
var y = report.Names.Item("M_Leitung").RefersToRange.Value;
Console.WriteLine(y);
excelWorkbooks.Close();
excelApp.Quit();
}
Run Code Online (Sandbox Code Playgroud)
请注意,重命名单元格时会自动创建命名范围.如果您创建了一系列说A1:B1并且您选择了它.Excel将向您显示该角标签中的命名范围,而不是证明它可以双向工作的地址.
HTH
| 归档时间: |
|
| 查看次数: |
9185 次 |
| 最近记录: |