ワークシートのデータを処理する際には、特定のデータをより簡単に見つけたり読み取ったりするために、列を再配置する必要がある場合があります。Microsoft Excel では、Shift キーを押しながらドラッグすることで列を簡単に移動できます。また、プログラミングの方法を使ってもこの機能を実現することができます。この記事では、Spire.XLS for Java を使用して、Excel で列の順序を変更する方法を示します。
Spire.XLS for Java をインストールします
まず、Spire.XLS for Java を Java プロジェクトに追加する必要があります。JAR ファイルは、このリンクからダウンロードできます。Maven を使用する場合は、次のコードをプロジェクトの pom.xml ファイルに追加する必要があります。
<repositories>
<repository>
<id>com.e-iceblue</id>
<name>e-iceblue</name>
<url>https://repo.e-iceblue.com/nexus/content/groups/public/</url>
</repository>
</repositories>
<dependencies>
<dependency>
<groupId>e-iceblue</groupId>
<artifactId>spire.xls</artifactId>
<version>13.11.6</version>
</dependency>
</dependencies>
Java を使用して Excel の列の順序を変更する
Spire.XLS for Java は、Excel の列の順序のカスタマイズをサポートしています。以下に詳細な手順を示します。
- Workbook オブジェクトを作成し、Workbook.loadFromFile() メソッドを使用してサンプル Excel ファイルを読み込みます。
- Workbook.getWorksheets().get() メソッドを使用して、順序を調整するターゲットワークシートを取得します。
- 新しい列の順序を int 配列で指定します。
- 一時なワークシートを作成し、ターゲットシートからそこにデータをコピーします。
- 一時なワークシートからターゲットシートに列をコピーし、新しい順序で保存します。
- 一時なワークシートを削除します。
- Workbook.saveToFile() メソッドを使用して、ワークブックを別の Excel ファイルに保存します。
- Java
import com.spire.xls.FileFormat;
import com.spire.xls.Workbook;
import com.spire.xls.Worksheet;
public class RearrangeColumns {
public static void main(String[] args) {
//Workbookオブジェクトを作成する
Workbook workbook = new Workbook();
//Excelファイルを読み込む
workbook.loadFromFile( "Sample.xlsx");
//最初のワークシートを取得する
Worksheet worksheet = workbook.getWorksheets().get(0);
//新しい列の順序を設定する「列インデックスは 0 から計算される」
int[] newColumnOrder = new int[]{4, 0, 1, 2, 3, 5};
//一時的なワークシートを追加する
Worksheet newSheet = workbook.getWorksheets().add("temp");
//最初のワークシートから一時シートにデータをコピーする
newSheet.copyFrom(worksheet);
//newColumnOrder 配列をループする
for (int i = 0; i < newColumnOrder.length; i++) {
//一時なワークシートから最初のシートに列をコピーする
newSheet.getColumns()[newColumnOrder[i]].copy(worksheet.getColumns()[i],true,true);
//最初のシートの特定の列の幅を一時なシートの幅に設定する
worksheet.getColumns()[i].setColumnWidth(newSheet.getColumns()[newColumnOrder[i]].getColumnWidth());
}
//一時なワークシートを削除する
workbook.getWorksheets().remove(newSheet);
//ワークブックを別の Excel ファイルに保存する
workbook.saveToFile("output/MoveColumn.xlsx", FileFormat.Version2016);
}
}
一時ライセンスを申請する
結果ドキュメントから評価メッセージを削除したい場合、または機能制限を取り除く場合は、についてこのメールアドレスはスパムボットから保護されています。閲覧するにはJavaScriptを有効にする必要があります。にお問い合わせ、30 日間有効な一時ライセンスを取得してください。