我有这一点代码来获取工作表中最后一个单元格的地址。它返回“$ U $ 463”,我怎么能得到它仅返回U”的一部分?在excel地址的地址中获取列名部分
锐马丁斯
Range newContracts = activeWorksheet.Cells.SpecialCells(XlCellType.xlCellTypeLastCell);
string address = newContracts.get_Address();
我有这一点代码来获取工作表中最后一个单元格的地址。它返回“$ U $ 463”,我怎么能得到它仅返回U”的一部分?在excel地址的地址中获取列名部分
锐马丁斯
Range newContracts = activeWorksheet.Cells.SpecialCells(XlCellType.xlCellTypeLastCell);
string address = newContracts.get_Address();
您可以使用字符串操作:
string columnLetter = address.Split('$', StringSplitOptions.RemoveEmptyEntries)[0];
我宁愿用列的索引号,而不是的信件;你可以从Column
属性中得到这个。如果你真的需要字母标识符,你可以计算它。我确信我记得一个内置函数用于将列的索引号(即3)转换为它的字母标识符(即“C”),但目前我找不到它。
这正是我一直在尝试得到,做了它的一些功能。字符串操作很简单,我只是想做不同的事情。 –
@ruimartins我想我找到了我正在寻找的东西:'ConvertFormula'函数。但是我不能让它为第四列返回字母'D'';它总是返回'“$ D:$ D”' – phoog
Tks。我想我会坚持字符串操作。 –
你可以使用像这样一个正则表达式或子字符串方法:
string rowId = address.Substring(address.LastIndexOf('$') + 1);
string columnId = address.Substring(1, address.LastIndexOf('$') - 1);
这个问题有一些有用的信息http://stackoverflow.com/questions/297213/translate-an-index-into-an-excel-column-name?rq=1 – datatoo