/// <summary> /// List<Form> Init(int toc_line) - initiate all Forms for Document in toc_line. /// </summary> /// <param name="toc_line">line number in TOC</param> /// <returns>form list</returns> public static List<Form> Init(int toc_line) { Log.set("Init(" + toc_line + ")"); //------------------------------------------------------------------------------ language = true; //en-US for Englisg Debug. Remove or comment this line later ! //------------------------------------------------------------------------------ List<Form> Forms = new List<Form>(); for (int col = Decl.DOC_FORMS, i = 0; i < 10; i++) { string s = Lang(tocMtr.Strng(toc_line, col++)); if (string.IsNullOrEmpty(s)) continue; if (FileOp.isNamedRangeExist(Wb, s)) { List<int> _r = new List<int>(); List<int> _c = new List<int>(); string sf = s + "_F"; if (FileOp.isNamedRangeExist(Wb, sf)) { Mtr format = new Mtr(Wb.Names.Item(sf).RefersToRange.Value); for (int c = 1; c <= format.iEOC(); c++) for (int r = 1; r <= format.iEOL(); r++) { string f = format.Strng(r, c); if (f.Contains("{") & f.Contains("}")) { _r.Add(r); _c.Add(c); } } } Forms.Add(new Form(s, _r, _c)); } } Log.exit(); return Forms; }
public static void saveRngValue(Mtr Body, int rowToPaste = 1, bool AutoFit = true, string msg = "") { Log.set("saveRngValue"); int r0 = Body.LBoundR(), r1 = Body.iEOL(), //!! c0 = Body.LBoundC(), c1 = Body.iEOC(); //!! try { object[,] obj = new object[r1, c1]; for (int i = 0; i < r1; i++) { for (int j = 0; j < c1; j++) { obj[i, j] = Body[i + 1, j + 1]; } } r1 = r1 - r0 + rowToPaste; r0 = rowToPaste; Excel.Range cell1 = _sh.Cells[r0, c0]; Excel.Range cell2 = _sh.Cells[r1, c1]; Excel.Range rng = _sh.Range[cell1, cell2]; rng.Value = obj; if (AutoFit) { for (int i = 1; i <= c1; i++) { _sh.Columns[i].AutoFit(); } } } catch (Exception e) { if (msg == "") { msg = "Range[ [" + r0 + ", " + c0 + "] , [" + r1 + ", " + c1 + "] ]"; } Log.FATAL(msg); } Log.exit(); }
private static void colCpy(Mtr mtr, int rwMtr, Excel.Range rng, int rwRng) { int cols = mtr.iEOC(); //!!! 2.1.16 for (int col = 1; col <= cols; col++) rng.Cells[rwRng, col] = mtr.get(rwMtr, col); }
public static void saveRngValue(Mtr Body, int rowToPaste = 1, bool AutoFit = true, string msg = "") { Log.set("saveRngValue"); int r0 = Body.LBoundR(), r1 = Body.iEOL(), //!! c0 = Body.LBoundC(), c1 = Body.iEOC(); //!! try { object[,] obj = new object[r1, c1]; for (int i = 0; i < r1; i++) for (int j = 0; j < c1; j++) obj[i, j] = Body[i + 1, j + 1]; r1 = r1 - r0 + rowToPaste; r0 = rowToPaste; Excel.Range cell1 = _sh.Cells[r0, c0]; Excel.Range cell2 = _sh.Cells[r1, c1]; Excel.Range rng = _sh.Range[cell1, cell2]; rng.Value2 = obj; if( AutoFit) for (int i = 1; i <= c1; i++) _sh.Columns[i].AutoFit(); } catch (Exception e) { if (msg == "") { msg = "Range[ [" + r0 + ", " + c0 + "] , [" + r1 + ", " + c1 + "] ]"; } Log.FATAL(msg); } Log.exit(); }