0
asp/MVCを使用すると、アプリケーションは特定の列に埋め込まれたデータに基づいてExcelの.xlsxファイルを生成し、うまく動作します。ClosedXMLでは、ワークシートを列で並べ替える方法は?
しかし、目標は同じ列を使用して、追加のワークシートを提供することであるが、ソートなどコラム「J」
var wb = new XLWorkbook();
var ws = wb.Worksheets.Add("Proj Info");
var ws2 = wb.Worksheets.Add("Sort By Dates");
など、特定のcolums、ワークシートWSに変数または式で埋め値、データを持っています正しいですが、列に並べ替えることはできません。
ws.AutoFilter.Column("J"); //no, nothing changes
ws.Column("J").Sort(); -> this shifts all the columns up but does not sort
ws.Column("J").Sort(XLSortOrder.Ascending); ->same, doesnt sort only shifts
更新:ws.Sort(9);並べ替えで機能しましたが、問題は列10に数式があり、その列を並べ替える必要があることです。
ws.Cell("J" + c).FormulaR1C1 = "=C$2-F" + c;
これはこれですか?それは並べ替えられません。 ws.Sort(10);セルに最終的な値が含まれているときに機能しますが、式が得られたときは機能しますか?各セルに数式を実装した後、Excelページを強制的に並べ替えるための回避策はありますか?
は、として書かなければならなかった:ws.Sort(10)。 ws.Sort( "Column10")のためです。エラーが発生しました:有効な値1 - 65536を入力する必要がありますか?しかし、私が他のコラムでこれを使うと、うまくいきます! ws.Sort(11)はその列でソートされます。列10では機能しませんが、違いはCol 10が数式から値を取得する点だけです。 Col 10の各セルには「= C $ 4-E6」(またはE7、E8など)があります。 –
数式をソートすることは意味がありません.Excel式はClosedXmlで実行されないためです。あなたができることは...結果を計算して列に書き出し、その結果を並べ替えてから削除します。しかし、この場合は、単に列5( 'E')でソートすることができます。 – Xiaoy312
今はすべてのワークシートが列Aでソートされているので、何かが奇妙で、うまくいきました。ws2.Sort(3);列 "C"を並べ替えます。もはや列 "A"を並べ替えません。しかし、それは働いていた。すべての数式を取り出して、コントローラ内の計算部分を実行し、変数を入力するだけです。ソートがなぜ機能するのか、その後は動作しないのですか? –