用友華表Cell一些用法小結(cs.net版本)


  

  //從Color類型得到RGB類型,也可以用ColorTranslator.ToOle()方法
  public int GetRGBFromColor(Color color)
  {
    byte r = color.R;
    byte g = color.G;
    byte b = color.B;
    //轉化為32bit RGB值:
    int rgb = (r & 0xff) | ((g & 0xff) << 8) | ((b & 0xff) << 16);
    return rgb;
  }

  // 注冊Cell,並初始化cell屬性天暢科技
  private bool RegisterCell()
  {
    try
    {
      //注冊Cell
      int loginresult = axCell1.Login("北京", "11100101954", "7640-1017-7650-5004");
      if (loginresult == 0)
      {
        FrmTZTip.Show("錯誤提示", "注冊Cell失敗", TipType.waring);
        return false;
      }
      axCell1.LocalizeControl(0x804);
      axCell1.ShowHScroll(1, axCell1.GetCurSheet());//橫向滾輪
      axCell1.ShowVScroll(1, axCell1.GetCurSheet());//縱向滾輪
      this.axCell1.SetGridCursor(0, 1);//設置鼠標樣式
      axCell1.AllowCopy = false;//不允許復制
      axCell1.AllowCut = false;// 不允許剪切
      axCell1.AllowExtend = false;//不允許用鼠標拖動選中單元格的右下角進行擴展操作
      axCell1.AllowDragdrop = false;//不允許拖拽單元格
      return true;
    }
    catch
    {
      FrmTZTip.Show("錯誤提示", "注冊Cell失敗", TipType.waring);
      return false;
    }
  }

  InsertRow2方法最后一個參數用法:
  0:插入空白行(和InsertCleanRow功能一樣)
  // 1:插入行,自動復制上一行的某些屬性(和InsertRow功能一樣),不包括單元格的合並
  // 2:插入行,自動復制上一行的某些屬性,會自動獨立合並startrow行上的某列(根據上一行的合並情況)
  // 3:插入行,自動添加到上一行的合並單元格中
     // >3:如3雷同...

      //批量導入公式
   axCell1.SetAllFormulas(str_公式,false);

   //得到公式

   str_公式 = axCell1.GetAllFormulas();

   //是否為公式單元格

   IsFormulaCell方法

   //不顯示公式編輯
        private void axCell1_AllowInputFormula(object sender, AxCELL50Lib._DCell2000Events_AllowInputFormulaEvent e)
        {
            e.approve = 0;
        }

   //放大縮小,注意最后的100一定要帶上.0,也可以把數據裝換成double類型
        axCell1.SetScreenScale(axCell1.GetCurSheet(), Convert.ToInt32(combBigger.SelectedItem.ToString().TrimEnd('%')) / 100.0);

 

    /// <summary>
        /// 插入行,並繼承公式zdc,自寫的一個插入行可以繼承公式的方法
        /// </summary>
        /// <param name="startrow">要插入行的行號</param>
        /// <param name="count">插入幾行</param>
        /// <param name="axcell">cell控件對象</param>
        public void InsertRow3(int startrow,int count,AxCELL50Lib.AxCell axcell)
        {
            axcell.InsertRow2(axcell.GetCurrentRow(), 1, axcell.GetCurSheet(), 2);

            //遍歷插入行上面一行的所有單元格,如果為公式行,選中這一個單元格和下面的一個(SelectRange),然后再用FormulaFillSerial()方法,用FormulaFillSerial方法能按最上面單元格的公式繼承
            for (int j = 1; j <= axcell.GetCols(axcell.GetCurSheet()); j++)
            {
                if (axcell.IsFormulaCell(j, startrow - 1, axcell.GetCurSheet()) > 0)
                {
                    axcell.SelectRange(j, startrow - 1, j, startrow);
                    axcell.FormulaFillSerial();
                }
            }
        }

 

   //幫助文檔上說的設置單元格為下拉窗體xml數據源的,試了用第一種方法直接讀取xml地址的不行,用第二種

   XmlDocument xmldoc = new XmlDocument();
            xmldoc.Load(@"E:\測試\ReportTest\ReportTest\test.xml");
           
            string xml= xmldoc.OuterXml;
            int n = axCell1.RSDefXmlSet("setname", xml, 2);
            axCell1.SetDropwndCell(9,4,axCell1.GetCurSheet(),n,2,2);

 

   CalcNumFormula方法,用於手動驗證公式時,

   如:CalcNumFormula("CurCell()>I8",Convert.ToInt32(col) - 64, row, axCell1.GetCurSheet(), ref type),后面的列、行、表,是用於如果出現CurCell()等當前行,當前列,當前單元格時,定位這個當前參數用的

 

單元格添加下拉樹形控件(SetDroptreeCell方法)

xml格式如下:

<?xml version="1.0" encoding="utf-8"?>
<XML>
  <CONFIG>
    <name name="SORT" value="sot"/>
    <name name="CHANGE" value="chg"/>
    <name name ="DISPLAY" value="hyname"/>
    <name name="RETURN" value="rtn"/>
    <name name="DEFAULTHEIGHT" value="0"/>
    <name name="DEFAULTWIDHT" value="0"/>
    <name name="KEYFIELD" value="key"/>
  </CONFIG>
  <VALUE>
    <tree0 hyname="農副食品加工業" rtn="" chg="cgh3" sot="a" key="ddd">
      <subtree hyname="谷物磨制" rtn="輕工" chg="cgh3" sot="a" key="ddd" />
      <subtree hyname="飼料加工" rtn="輕工" chg="cgh3" sot="a" key="ddd" />
      <subtree hyname="植物油加工" rtn="輕工" chg="cgh3" sot="a" key="ddd" />
    </tree0>
    <tree4 hyname="食品制造業" rtn="" chg="cgh3" sot="a" key="ddd">
      <subtree hyname="焙烤食品制造" rtn="輕工" chg="cgh3" sot="a" key="ddd" />
      <subtree hyname="糖果、巧克力及蜜餞制造" rtn="輕工" chg="cgh3" sot="a" key="ddd" />
      <subtree hyname="方便食品制造" rtn="輕工" chg="cgh3" sot="a" key="ddd" />
      <subtree hyname="乳制品制造" rtn="輕工" chg="cgh3" sot="a" key="ddd" />
    </tree4>
  </VALUE>
</XML>

axCell1.SetDroptreeCell(2, 19, axCell1.GetSheetIndex("SB10401_003_1"), Str, -1, -1, 1);

效果如下:


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM