找回密码
 立即注册

QQ登录

只需一步,快速开始

lh8350

论坛元老

33

主题

80

帖子

2万

积分

论坛元老

积分
23275

活字格认证

lh8350
论坛元老   /  发表于:2012-8-28 14:04  /   查看:6167  /  回复:1
能否将公式单元格中的RC格式的公式转换为A1这种格式的?因为公式是从数据库读取的RC这种格式的公式,而用户是看不懂的。能不能将RC的公式翻译成A1格式呢?

1 个回复

倒序浏览
ZenosZeng讲师达人认证 悬赏达人认证
超级版主   /  发表于:2012-8-28 14:12:00
沙发
Spread 本身没有提供RC到A1的转换功能,需要编码实现。

简单实现如下:
  1.     private String RCToA1(FarPoint.Win.Spread.Model.CellRange range)
  2.     {
  3.         Int32 startRow = range.Row + 1;
  4.         Int32 endRow = range.Row + range.RowCount;
  5.         String startColumn = IntToChar(range.Column);
  6.         String endColumn = IntToChar(range.Column + range.ColumnCount - 1);

  7.         MessageBox.Show(String.Format("{0}{1}:{2}{3}", startColumn, startRow, endColumn, endRow));
  8.         return String.Format("{0}{1}:{2}{3}", startColumn, startRow, endColumn, endRow);
  9.     }

  10.     private String IntToChar(Int32 num)
  11.     {
  12.         String str = "";

  13.         if (num == 0)
  14.         {
  15.             str = "A";
  16.         }
  17.         else
  18.         {
  19.             for (Int32 i = 0; num != 0; i++)
  20.             {
  21.                 if (num == 1)
  22.                 {
  23.                     str = "A" + str;
  24.                     break;
  25.                 }
  26.                 str = (Char.ConvertFromUtf32(65 - (i != 0 ? 1 : 0) + num % 26)).ToString() + str;
  27.                 if ((num % 26 == 0) && (num / 26 == 1))
  28.                 {
  29.                     str = "A" + str;
  30.                     break;
  31.                 }
  32.                 num = num / 26;
  33.             }
  34.         }

  35.         return str;
  36.     }
复制代码
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册
返回顶部