Java Apache POIでの既存のExcelファイルの更新

セス:

(タスクスケジューラを使用して)毎日実行し、実行するたびにExcelスプレッドシートに列を追加するJavaプログラムを記述しようとしています。私が抱えている問題は、ファイルに追加するのではなく、単にファイルを再書き込みすることです。私はApache POIを使用しています。関連するコードは次のとおりです。

 public static void toExcel(List<String> results, List<Integer> notActive)throws IOException{
    try {
        FileInputStream fIPS= new FileInputStream("test.xls"); //Read the spreadsheet that needs to be updated
        HSSFWorkbook wb;
        HSSFSheet worksheet;
        if(fIPS.available()>=512) {
            wb = new HSSFWorkbook(fIPS); //If there is already data in a workbook
            worksheet = wb.getSheetAt(0);
        }else{
            wb = new HSSFWorkbook();    //if the workbook was just created
            worksheet = wb.createSheet("Data");
        }
         //Access the worksheet, so that we can update / modify it
        HSSFRow row1 = worksheet.createRow(0);  //0 = row number
        int i=0;
        Cell c = row1.getCell(i);
        while (!(c == null || c.getCellType() == Cell.CELL_TYPE_BLANK)) {   //cell is empty
            i++;
            c=row1.getCell(i);
        }
        HSSFRow rowx;
        int x=0;
        for(String s : results) {
            rowx = worksheet.createRow(x);
            HSSFCell cellx = rowx.createCell(i);   //0 = column number
            cellx.setCellValue(s);
            x++;
        }
        fIPS.close(); //Close the InputStream
        FileOutputStream output_file =new FileOutputStream("test.xls");//Open FileOutputStream to write updates
        wb.write(output_file); //write changes
        output_file.close();  //close the stream

    } catch (FileNotFoundException e) {
        e.printStackTrace();
    } catch (IOException e) {
        e.printStackTrace();
    }
}
ギャリー:

新しい行とセルを何度も作成していて、Excelの書き換えが発生していると思います。

基本的に、プログラムで行とセルを作成する代わりに、それらを取得する必要があります。

HSSFRow row1 = worksheet.createRow(0);

行を作成するのではなく、取得する必要がある場合があります。

HSSFRow row1 = worksheet.getRow(0);

https://poi.apache.org/apidocs/org/apache/poi/ss/usermodel/Sheet.html#getRow(int)

この小さな例は、2行目の2番目のセルを更新します。

//Read the spreadsheet that needs to be updated
FileInputStream fsIP= new FileInputStream(new File("C:\\Excel.xls"));  
//Access the workbook                  
HSSFWorkbook wb = new HSSFWorkbook(fsIP);
//Access the worksheet, so that we can update / modify it. 
HSSFSheet worksheet = wb.getSheetAt(0); 
// declare a Cell object
Cell cell = null; 
// Access the second cell in second row to update the value
cell = worksheet.getRow(1).getCell(1);   
// Get current cell value value and overwrite the value
cell.setCellValue("OverRide existing value");
//Close the InputStream  
fsIP.close(); 
//Open FileOutputStream to write updates
FileOutputStream output_file =new FileOutputStream(new File("C:\\Excel.xls"));  
 //write changes
wb.write(output_file);
//close the stream
output_file.close();

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

InputStreamを使用せずにJava Apache POIで既存のExcelファイルを更新する

分類Dev

Apache POIを使用したExcelファイルの更新

分類Dev

Apache POI Javaを使用して複数のExcelファイルを1つのExcelファイルにマージする

分類Dev

apache-poiでExcelファイルを更新するときのPOIXMLException

分類Dev

Apache POIを使用したJavaでのXLSおよびXLSX Excelファイルの読み取りと書き込み

分類Dev

JavaでApache POIを使用してExcel(.xlsx)ファイルを作成すると、ファイルが破損する

分類Dev

Java apache POI java.lang.IllegalArgumentException:ファイルの終わりを過ぎた位置21504

分類Dev

Java用Apache POIの学習

分類Dev

Java Apache POI Wordの既存のテーブルは、セルのスタイルと書式設定で行を挿入します

分類Dev

Apache POIを使用してExcelファイルで列の名前を取得する

分類Dev

JavaでApache poiを使用してDocファイルのテーブルセルにテキストを入力してください

分類Dev

ApacheのPOI java.lang.NoClassDefFoundErrorが:ORG / apacheの/コモン/圧縮/アーカイバ/郵便番号/ ZIPファイル

分類Dev

Java Apache POI で作成した Excel ファイルを保存するために JFileChooser を使用する方法

分類Dev

Java Apache POI

分類Dev

Apache poi java:別のコンピューターでJARファイルを実行すると、画像がドキュメントに表示されない

分類Dev

Java Apache POIを使用して特定の単語のフォントスタイルをdocxファイルから変更する

分類Dev

Java(Selenium)セットアップでApache POIを使用して、複数のスレッド(並列テストケース)が同じExcelファイルに同時にアクセスするにはどうすればよいですか?

分類Dev

JavaおよびApache POIを使用して、マップからの結果をxlsxファイルの空のセルに入力します

分類Dev

Java内で既存のExcelファイルのコピーを作成します

分類Dev

Javaでファイルを削除する際の問題(Apache Commons IO)

分類Dev

ApacheのJavaのPOIを使用してExcelミリ秒でテーブルを挿入する方法

分類Dev

Java Apache POIはWord(.doc)ファイルを読み取り、使用される名前付きのCHARACTERスタイルを取得します

分類Dev

JavaはApache poiからExcelセルの背景色を取得します

分類Dev

Apache POI:Excelファイルのコンテンツが破損する

分類Dev

Apache POI経由で大きなExcelファイル(xlsx)を読み取る際のエラー

分類Dev

Apache-POI / Java / Excelファイルに書き込むときに行を除外する

分類Dev

Apache-POI / Java / Excelファイルに書き込むときに行を除外する

分類Dev

Java Apache POI 3.9Eclipseを使用してExcelファイル.xlsxから読み取ります

分類Dev

Java / Apache POI-特定のセルのフォントサイズを変更/設定するにはどうすればよいですか?

Related 関連記事

  1. 1

    InputStreamを使用せずにJava Apache POIで既存のExcelファイルを更新する

  2. 2

    Apache POIを使用したExcelファイルの更新

  3. 3

    Apache POI Javaを使用して複数のExcelファイルを1つのExcelファイルにマージする

  4. 4

    apache-poiでExcelファイルを更新するときのPOIXMLException

  5. 5

    Apache POIを使用したJavaでのXLSおよびXLSX Excelファイルの読み取りと書き込み

  6. 6

    JavaでApache POIを使用してExcel(.xlsx)ファイルを作成すると、ファイルが破損する

  7. 7

    Java apache POI java.lang.IllegalArgumentException:ファイルの終わりを過ぎた位置21504

  8. 8

    Java用Apache POIの学習

  9. 9

    Java Apache POI Wordの既存のテーブルは、セルのスタイルと書式設定で行を挿入します

  10. 10

    Apache POIを使用してExcelファイルで列の名前を取得する

  11. 11

    JavaでApache poiを使用してDocファイルのテーブルセルにテキストを入力してください

  12. 12

    ApacheのPOI java.lang.NoClassDefFoundErrorが:ORG / apacheの/コモン/圧縮/アーカイバ/郵便番号/ ZIPファイル

  13. 13

    Java Apache POI で作成した Excel ファイルを保存するために JFileChooser を使用する方法

  14. 14

    Java Apache POI

  15. 15

    Apache poi java:別のコンピューターでJARファイルを実行すると、画像がドキュメントに表示されない

  16. 16

    Java Apache POIを使用して特定の単語のフォントスタイルをdocxファイルから変更する

  17. 17

    Java(Selenium)セットアップでApache POIを使用して、複数のスレッド(並列テストケース)が同じExcelファイルに同時にアクセスするにはどうすればよいですか?

  18. 18

    JavaおよびApache POIを使用して、マップからの結果をxlsxファイルの空のセルに入力します

  19. 19

    Java内で既存のExcelファイルのコピーを作成します

  20. 20

    Javaでファイルを削除する際の問題(Apache Commons IO)

  21. 21

    ApacheのJavaのPOIを使用してExcelミリ秒でテーブルを挿入する方法

  22. 22

    Java Apache POIはWord(.doc)ファイルを読み取り、使用される名前付きのCHARACTERスタイルを取得します

  23. 23

    JavaはApache poiからExcelセルの背景色を取得します

  24. 24

    Apache POI:Excelファイルのコンテンツが破損する

  25. 25

    Apache POI経由で大きなExcelファイル(xlsx)を読み取る際のエラー

  26. 26

    Apache-POI / Java / Excelファイルに書き込むときに行を除外する

  27. 27

    Apache-POI / Java / Excelファイルに書き込むときに行を除外する

  28. 28

    Java Apache POI 3.9Eclipseを使用してExcelファイル.xlsxから読み取ります

  29. 29

    Java / Apache POI-特定のセルのフォントサイズを変更/設定するにはどうすればよいですか?

ホットタグ

アーカイブ