- ベストアンサー
【ファイル入出力】エクセルへ出力する際に、マクロを消さない方法
javaで、DBから取得したデータにタブを付けて、エクセルへ出力しています。 上書きになってしまうので、エクセルのマクロが消えてしまいます。 この、マクロを消さずに、出力する方法はないでしょうか? よろしくお願いします!!!
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
POIは既存のExcelのファイルにシートを追加して、 そこにデータを書き込むことができるみたいですが、 それではダメだったのでしょうか? 例えばこういうソースで、既存のブックにシートを追加して、セルにデータを入れることができましたが。。。 import java.io.*; import org.apache.poi.hssf.usermodel.*; import org.apache.poi.poifs.filesystem.POIFSFileSystem; class TestPOI { public static void main(String args[]){ String filename = "c:\\hoge\\workbook.xls"; try { POIFSFileSystem fs = new POIFSFileSystem(new FileInputStream(filename)); HSSFWorkbook wb = new HSSFWorkbook(fs); HSSFSheet sheet = wb.createSheet("POI_Sheet"); /* セルへの書き込みテスト */ HSSFRow row = sheet.createRow((short)0); HSSFCell cell = row.createCell((short)0); cell.setCellValue(1); row.createCell((short)1).setCellValue(1.2); row.createCell((short)2).setCellValue("This is a string"); row.createCell((short)3).setCellValue(true); FileOutputStream fileOut = new FileOutputStream(filename); wb.write(fileOut); fileOut.close(); } catch (Exception ex) { ex.printStackTrace (); } } }
その他の回答 (1)
- dayowl
- ベストアンサー率56% (84/148)
>javaで、DBから取得したデータにタブを付けて、エクセルへ出力しています。 これが具体的にどういう処理をしてるのかわからないので、もう少し詳しい補足をお願いします。 POIを使ったのですか?
補足
BufferedWriterを使い、出力ファイル名の拡張子を.xlsにしただけのものです。 POIは検討いたしましたが、現行バージョンではマクロをサポートしていないとのことでした。