Solved

# convert integers columns & rows into CString Excel cell format.

Posted on 2000-05-12
682 Views
Hi all,
I am searching for an algorithm which converts integers Columns and Rows, in an Excel cell.

E.g. if I have nCol=0, nRow=0 => algo returns CString "A1"
if I have nCol=28, nRow=1  => algo must return "AB2" (2 chars wide for Col description)

Thanks a lot !

Regards,
David.
0
[X]
###### Welcome to Experts Exchange

Add your voice to the tech community where 5M+ people just like you are talking about what matters.

• Help others & share knowledge
• Earn cash & points
• 2

LVL 3

Accepted Solution

marcjb earned 50 total points
ID: 2804399
I think that nCol = 28, nRow = 1 should be "AC2".  If that is the case, the following is a C program that has a function to do what you want.

You would have to change the character array stuff to a CString, but the algorithm is the same.  If the column is greater than 25 (since we are using 0 as the base), then there are two letters to describe the column.

#include <stdio.h>

void toExcel(int i, int j, char *s)
{
if ( i > 25 )
{
sprintf(s, "%c%c%1i", 'A' + (i/26) - 1, 'A' + (i%26), j + 1);
}
else
sprintf(s, "%c%1i", 'A' + i, j + 1 );
}

int main(void)
{
int x, y;
char a[5];

x = 0;
y = 0;
toExcel(x, y, (char*)a);
printf("x: %i  y: %i  a: %s\n", x, y, a);

x = 28;
y = 1;
toExcel(x, y, (char*)a);
printf("x: %i  y: %i  a: %s\n", x, y, a);

return 0;
}

0

Author Comment

ID: 2804602
Cool code.
Here it is translated in MsVC++ :

void C_Results::ConvCell (long nCol, long nRow, CString& strCell)
{
CString strCol = "";
if (nCol>25)
{      strCol = ((char)('A' + (nCol/26) - 1));
strCol += ((char)('A' + (nCol%26)) );
}
else
strCol = (char)('A' + nCol);

strCell.Format("%s%d", strCol, nRow + 1 );
}

Thanks.
0

LVL 3

Expert Comment

ID: 2804689
0

## Featured Post

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

When writing generic code, using template meta-programming techniques, it is sometimes useful to know if a type is convertible to another type. A good example of when this might be is if you are writing diagnostic instrumentation for code to generatâ€¦
Container Orchestration platforms empower organizations to scale their apps at an exceptional rate. This is the reason numerous innovation-driven companies are moving apps to an appropriated datacenter wide platform that empowers them to scale at a â€¦
The viewer will learn additional member functions of the vector class. Specifically, the capacity and swap member functions will be introduced.
The viewer will learn how to clear a vector as well as how to detect empty vectors in C++.
###### Suggested Courses
Course of the Month6 days, 19 hours left to enroll