-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathExcelColumns.cs
78 lines (59 loc) · 2.19 KB
/
ExcelColumns.cs
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
using System;
using Microsoft.VisualStudio.TestTools.UnitTesting;
namespace PrimitiveTypes
{
[TestClass]
public class ExcelColumns
{
// Solution taken from http://stackoverflow.com/questions/181596/how-to-convert-a-column-number-eg-127-into-an-excel-column-eg-aa
[TestMethod]
[TestCategory("02_Excel_Columns")]
public void Column_Combination_If_Less_Than_27 () {
int columnNumber = 2;
string columnID = GetColumnID(columnNumber);
Assert.AreEqual("B", columnID);
}
[TestMethod]
[TestCategory("02_Excel_Columns")]
public void Column_Combination_If_Equal_To_27() {
int columnNumber = 27;
string columnID = GetColumnID(columnNumber);
Assert.AreEqual("AA", columnID);
}
[TestMethod]
[TestCategory("02_Excel_Columns")]
public void Column_Combination_If_Equal_To_52() {
int columnNumber = 52;
string columnID = GetColumnID(columnNumber);
Assert.AreEqual("AZ", columnID);
}
[TestMethod]
[TestCategory("02_Excel_Columns")]
public void Column_Combination_If_Equal_To_53() {
int columnNumber = 53;
string columnID = GetColumnID(columnNumber);
Assert.AreEqual("BA", columnID);
}
[TestMethod]
[TestCategory("02_Excel_Columns")]
public void Column_Combination_If_Equal_To_16384() {
int columnNumber = 16384;
string columnID = GetColumnID(columnNumber);
Assert.AreEqual("XFD", columnID);
}
private string GetColumnID(int columnNumber) {
string result = string.Empty;
int divisionResult = columnNumber;
int remainder;
while (divisionResult > 0) {
remainder = (divisionResult - 1) % 26;
result = CovertDigitToChar(remainder) + result;
divisionResult = (divisionResult - remainder) / 26;
}
return result;
}
private static string CovertDigitToChar(int digit) {
return Convert.ToChar('A' + digit).ToString();
}
}
}