2017-08-17 4 views
0

Ich verschiebe mein C# -Projekt vom Interop nach Spire.Interop to Spire Migration, Formel wird hart codiert

Below Stück Code wird in Interop arbeiten, aber nicht in Spire: -

Interop: -

Wenn ich die Formel liefern "= SUM (F2, G2)" über den Bereich, wird es automatisch appied wird auf den Bereich von Zellen, zum Beispiel: - "= SUM (F3, G3)" für die 3. Reihe "= SUM (F4, G4)" für die 4. Reihe und so weiter: -

Unten ist das Stück von Code

string formula = string.Format("=SUM(F" + "{0}" + ",G" + "{0}" + ")", 2); 
Excel.Range to = xlWorkSheet.Range[xlWorkSheet.Cells[2, cl + 1], xlWorkSheet.Cells[rw, cl + 1]];  
to.Formula = formula; 

Spire: -

Aber wenn ich anwenden, den gleichen Code, ist es schwer Codes die Formel zum "= SUMME (F2, G2)" über den Bereich: - „= SUMME (F2, G2) "für die 3. Zeile "= SUMME (F42, G2)" für 4. Reihe und so weiter: -

unten ist das Stück Code

string formula = string.Format("=SUM(F" + "{0}" + ",G" + "{0}" + ")", 2); 
CellRange to = xlWorkSheet.Range[2, cl + 1, rw, cl + 1];  
to.Formula = Formula; 

ich will nicht durch die iterieren ra ng und legen Sie die Formel aufgrund von Leistungsproblemen einzeln in die Zelle.

Jede Hilfe wird sehr geschätzt.

Antwort

0

Sie haben die gleiche Frage auf Spire-Forum gestellt, einer der technischen Support-Techniker gab Ihnen bereits eine Antwort. Falls Sie es nicht gesehen haben, zitiere ich es hier für Ihre Referenz.

In unserem Spire.XLS, wenn Sie eine Formel für einen Zellbereich festlegen, ist die Formel eine feste Formel. Wir tun dies, weil wir andere Gelegenheiten in Betracht ziehen müssen. Es ist eine einfache Aufgabe für uns, die Eigenschaft "Formel" auf Ihren gewünschten Effekt wie Interop zu ändern, und die Iteration kann helfen, sie zu erreichen. Wenn wir es jedoch geändert haben, gibt es keinen Zugang für diejenigen, die die feste Formel bevorzugen. Auf der anderen Seite, wenn wir es als eine feste Formel setzen, können Benutzer, die eine automatische Formel wollen, einige Modifikationen entsprechend ihrer eigenen Situation vornehmen. Außerdem müssen Sie sich nicht um das Leistungsproblem kümmern, da das gewünschte Ergebnis auch durch eine interne Iteration erreicht wird. Unten ist die Iteration für Ihre Referenz.

int totalRows= sheet.Rows.Length; 
     CellRange to; 
     for (int CurrentRow = 1; CurrentRow < totalRows+1; CurrentRow++) 
     { 
      string formula = string.Format("=SUM(F" + "{0}" + ",G" + "{0}" + ")", CurrentRow); 
      to = sheet.Range[CurrentRow,cl+1]; 
      to.Formula = formula; 
     } 
Verwandte Themen