ExcelBanter

ExcelBanter (https://www.excelbanter.com/)
-   Excel Programming (https://www.excelbanter.com/excel-programming/)
-   -   *Fast* way of extracting cell text formatting (https://www.excelbanter.com/excel-programming/433656-%2Afast%2A-way-extracting-cell-text-formatting.html)

Filip Stanek

*Fast* way of extracting cell text formatting
 
Is there a pretty quick way to extract the formatting of text in a single
cell? For example, the cell may contain some text that is bold, superscript,
underline, or italic. I want to convert the text to HTML, so that I can
display it somewhere else.

So far, I have the following code:

int CharCount = Convert.ToString(Cell.Text).Length;
int UnderlineStyle =
(int)Microsoft.Office.Interop.Excel.XlUnderlineSty le.xlUnderlineStyleSingle;

for (int CharNum = 0; CharNum < CharCount; CharNum++)
{
Microsoft.Office.Interop.Excel.Characters Char =
Cell.get_Characters(CharNum + 1, 1);
bool IsCharBold = (bool)Char.Font.Bold;
bool IsCharUnderline = (int)Char.Font.Underline ==
UnderlineStyle;
bool IsCharItalic = (bool)Char.Font.Italic;
bool IsCharSuperScript = (bool)Char.Font.Superscript;

/** some other code here **//
}
}

However, the above code is extremely slow. I have some cells that contain
over 1000 characters, and it takes several minutes to execute the code for
the single cell. Does anyone know if there is a faster way to extract the
formatting info?

Thx,

Filip Stanek

Chip Pearson

*Fast* way of extracting cell text formatting
 
I believe what you have is pretty the only way to do it.

Cordially,
Chip Pearson
Microsoft Most Valuable Professional
Excel Product Group, 1998 - 2009
Pearson Software Consulting, LLC
www.cpearson.com
(email on web site)


On Tue, 15 Sep 2009 12:27:01 -0700, Filip Stanek
wrote:

Is there a pretty quick way to extract the formatting of text in a single
cell? For example, the cell may contain some text that is bold, superscript,
underline, or italic. I want to convert the text to HTML, so that I can
display it somewhere else.

So far, I have the following code:

int CharCount = Convert.ToString(Cell.Text).Length;
int UnderlineStyle =
(int)Microsoft.Office.Interop.Excel.XlUnderlineSt yle.xlUnderlineStyleSingle;

for (int CharNum = 0; CharNum < CharCount; CharNum++)
{
Microsoft.Office.Interop.Excel.Characters Char =
Cell.get_Characters(CharNum + 1, 1);
bool IsCharBold = (bool)Char.Font.Bold;
bool IsCharUnderline = (int)Char.Font.Underline ==
UnderlineStyle;
bool IsCharItalic = (bool)Char.Font.Italic;
bool IsCharSuperScript = (bool)Char.Font.Superscript;

/** some other code here **//
}
}

However, the above code is extremely slow. I have some cells that contain
over 1000 characters, and it takes several minutes to execute the code for
the single cell. Does anyone know if there is a faster way to extract the
formatting info?

Thx,

Filip Stanek


Ron Rosenfeld

*Fast* way of extracting cell text formatting
 
On Tue, 15 Sep 2009 12:27:01 -0700, Filip Stanek
wrote:

Is there a pretty quick way to extract the formatting of text in a single
cell? For example, the cell may contain some text that is bold, superscript,
underline, or italic. I want to convert the text to HTML, so that I can
display it somewhere else.

So far, I have the following code:

int CharCount = Convert.ToString(Cell.Text).Length;
int UnderlineStyle =
(int)Microsoft.Office.Interop.Excel.XlUnderlineSt yle.xlUnderlineStyleSingle;

for (int CharNum = 0; CharNum < CharCount; CharNum++)
{
Microsoft.Office.Interop.Excel.Characters Char =
Cell.get_Characters(CharNum + 1, 1);
bool IsCharBold = (bool)Char.Font.Bold;
bool IsCharUnderline = (int)Char.Font.Underline ==
UnderlineStyle;
bool IsCharItalic = (bool)Char.Font.Italic;
bool IsCharSuperScript = (bool)Char.Font.Superscript;

/** some other code here **//
}
}

However, the above code is extremely slow. I have some cells that contain
over 1000 characters, and it takes several minutes to execute the code for
the single cell. Does anyone know if there is a faster way to extract the
formatting info?

Thx,

Filip Stanek


Perhaps is you SAVE'd the document in HTML (or even XML) format, you might be
able to extract the data that way more quickly.
--ron

Filip Stanek

*Fast* way of extracting cell text formatting
 
I think I found a pretty fast way of doing it. There may be faster ways, but
where my code would take 30 minutes to execute before, it now takes about 15
seconds.

I wrote a little explanation of how I'm doing it on my blog if anyone else
has a need to quickly convert text in a cell to HTML or some other format.

http://www.bloodforge.com/post/Extra...ll-With-C.aspx

Thanks!

Filip Stanek

"Chip Pearson" wrote:

I believe what you have is pretty the only way to do it.

Cordially,
Chip Pearson
Microsoft Most Valuable Professional
Excel Product Group, 1998 - 2009
Pearson Software Consulting, LLC
www.cpearson.com
(email on web site)


On Tue, 15 Sep 2009 12:27:01 -0700, Filip Stanek
wrote:

Is there a pretty quick way to extract the formatting of text in a single
cell? For example, the cell may contain some text that is bold, superscript,
underline, or italic. I want to convert the text to HTML, so that I can
display it somewhere else.

So far, I have the following code:

int CharCount = Convert.ToString(Cell.Text).Length;
int UnderlineStyle =
(int)Microsoft.Office.Interop.Excel.XlUnderlineSt yle.xlUnderlineStyleSingle;

for (int CharNum = 0; CharNum < CharCount; CharNum++)
{
Microsoft.Office.Interop.Excel.Characters Char =
Cell.get_Characters(CharNum + 1, 1);
bool IsCharBold = (bool)Char.Font.Bold;
bool IsCharUnderline = (int)Char.Font.Underline ==
UnderlineStyle;
bool IsCharItalic = (bool)Char.Font.Italic;
bool IsCharSuperScript = (bool)Char.Font.Superscript;

/** some other code here **//
}
}

However, the above code is extremely slow. I have some cells that contain
over 1000 characters, and it takes several minutes to execute the code for
the single cell. Does anyone know if there is a faster way to extract the
formatting info?

Thx,

Filip Stanek




All times are GMT +1. The time now is 09:32 AM.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
ExcelBanter.com