jxl讀寫excel追加資料
import java.io.File; import java.io.IOException; import java.text.SimpleDateFormat; import java.util.Date; import jxl.Sheet; import jxl.Workbook; import jxl.read.biff.BiffException; import jxl.write.Label; import jxl.write.WritableSheet; import jxl.write.WritableWorkbook; import jxl.write.WriteException; import jxl.write.biff.RowsExceededException; public class WriteExcel { private static SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); private static File hasFile; /** * 同步操作,防止併發。 * * @param args * @return * @throws IOException * @throws RowsExceededException * @throws WriteException */ public synchronized static String[] write(String[] args) throws IOException, RowsExceededException, WriteException { // 檔案路徑 // 判斷檔案是否存在,如果存在就不建立,追加,如果不存在則建立檔案並追加。 WritableWorkbook book = Workbook.createWorkbook(getHasFile()); book.setProtected(true); // -- 第一個引數是Sheet名,第二個引數是Sheet下標 // -- 下標是整數,只起標識作用,建立的時候會以create順序建立,本例生成的EXCEL檔案第一個Sheet是sheet1 WritableSheet sheet = book.createSheet("第一頁", 1); sheet.setColumnView(0, 20); sheet.setColumnView(1, 20); sheet.setColumnView(2, 5); sheet.setColumnView(3, 20); sheet.setColumnView(4, 20); sheet.setColumnView(5, 20); sheet.setColumnView(6, 20); sheet.setColumnView(7, 20); sheet.setColumnView(8, 20); sheet.getSettings().setProtected(true); sheet.getSettings().setPassword("xxxx");//設定密碼 String[] title = { "支付寶交易號", "訂單號", "交易總金額", "商品名稱/訂單名稱", "商品描述/訂單備註", "買家支付寶賬號", "交易狀態", "sign", "交易時間" }; for (int i = 0; i < title.length; i++) { Label lable = new Label(i, 0, title[i]); sheet.addCell(lable); } // 初次建立,寫入一行。 for (int i = 0; i < title.length; i++) { Label lable = new Label(i, 1, args[i]); sheet.addCell(lable); } // 每次寫入資料時,寫到最後一行。 book.write(); book.close(); System.out.println("寫入成功"); return null; } /** * 追加excel * * @param args * @throws IOException * @throws BiffException * @throws WriteException * @throws RowsExceededException */ public static void addExcel(File file, String[] args) throws BiffException, IOException, RowsExceededException, WriteException { Workbook book = Workbook.getWorkbook(file); Sheet sheet = book.getSheet(0); // 獲取行 int length = sheet.getRows(); System.out.println(length); WritableWorkbook wbook = Workbook.createWorkbook(file, book); // 根據book建立一個操作物件 WritableSheet sh = wbook.getSheet(0);// 得到一個工作物件 // 從最後一行開始加 for (int i = 0; i < args.length; i++) { Label label = new Label(i, length, args[i]); sh.addCell(label); } wbook.write(); wbook.close(); } /** * 判斷檔案是否已經寫入 * * @param filename * @return */ public static boolean filecheck(String filename) { boolean flag = false; File file = new File(filename); if (file.exists()) { flag = true; } setHasFile(file); return flag; } /** * 不管神馬型別,都轉換成string * * @param obj * @return */ public static String converToString(Object obj) { return ""; } public static void main(String[] args) throws RowsExceededException, WriteException, IOException, BiffException { String filepath = WriteExcel.class.getResource("/").getPath() + sdf.format(new Date()) + ".xls"; String[] str = { "20101020102032032", "2012203203232032032", "50", "100元朗識幣", "這個訂單沒有備註", "
[email protected]", "STATU_SUCCESS", "ssdhfksdhfksdjhfkshdsdlfd", sdf.format(new Date()) }; boolean has = WriteExcel.filecheck(filepath); // 如果存在 if (has) addExcel(getHasFile(), str); else { write(str); } } /** * @return the hasFile */ public static File getHasFile() { return hasFile; } /** * @param hasFile * the hasFile to set */ public static void setHasFile(File hasFile) { WriteExcel.hasFile = hasFile; } }
執行第一次,在common/classes下建立了一個yyyyMMd.xls的檔案,寫入2行資料。
再次執行,此檔案資料追加一行。
可用來操作資料量不大的資料儲存。
方便下載檢視以及儲存。
缺點:追加資料的時候讀取原來的檔案作為副本然後新建一個工作物件,資料量大會導致記憶體溢位。
csv也不錯,可以研究一下,程式碼:
import java.io.BufferedWriter; import java.io.IOException; import java.io.OutputStream; import java.io.OutputStreamWriter; import java.io.UnsupportedEncodingException; import jxl.Cell; import jxl.Sheet; import jxl.Workbook; /** * Simple demo class which uses the api to present the contents * of an excel 97 spreadsheet as comma separated values, using a workbook * and output stream of your choice */ public class CSV { /** * Constructor * * @param w The workbook to interrogate * @param out The output stream to which the CSV values are written * @param encoding The encoding used by the output stream. Null or * unrecognized values cause the encoding to default to UTF8 * @param hide Suppresses hidden cells * @exception java.io.IOException */ public CSV(Workbook w, OutputStream out, String encoding, boolean hide) throws IOException { if (encoding == null || !encoding.equals("UnicodeBig")) { encoding = "UTF8"; } try { OutputStreamWriter osw = new OutputStreamWriter(out, encoding); BufferedWriter bw = new BufferedWriter(osw); for (int sheet = 0; sheet < w.getNumberOfSheets(); sheet++) { Sheet s = w.getSheet(sheet); if (!(hide && s.getSettings().isHidden())) { bw.write("*** " + s.getName() + " ****"); bw.newLine(); Cell[] row = null; for (int i = 0 ; i < s.getRows() ; i++) { row = s.getRow(i); if (row.length > 0) { if (!(hide && row[0].isHidden())) { bw.write(row[0].getContents()); // Java 1.4 code to handle embedded commas // bw.write("\"" + row[0].getContents().replaceAll("\"","\"\"") + "\""); } for (int j = 1; j < row.length; j++) { bw.write(','); if (!(hide && row[j].isHidden())) { bw.write(row[j].getContents()); // Java 1.4 code to handle embedded quotes // bw.write("\"" + row[j].getContents().replaceAll("\"","\"\"") + "\""); } } } bw.newLine(); } } } bw.flush(); bw.close(); } catch (UnsupportedEncodingException e) { System.err.println(e.toString()); } } }
相關推薦
jxl讀寫excel追加資料
import java.io.File; import java.io.IOException; import java.text.SimpleDateFormat; import java.util.Date; import jxl.Sheet; import jxl.
JAVA使用jxl讀寫Excel
java操作Excel一般有兩種方式,jxl和poi,這裡只說明用前一種。 一、使用jxl-2.6.12.jar 寫: File xlsFile = new File("jxl.xls
jxl 讀寫Excel例項
本篇文章主要講的是jxl 操作Excel的三個簡單的例項,一個是讀取Excel表格資料,一個是 寫一個新的Excel表格,最後是更新現有的Excel表格。在開始全面學習 jxl 之前,我們先看幾個例子,讓大家大概整體的瞭解一下jxl 是怎麼操作Excel表的
python - 讀寫excel資料
# -*- coding:utf-8 -*- ''' @project: jiaxy @author: Jimmy @file: do_excel.py @ide: PyCharm Community Edition @time: 2018-12-05 11:11 @blog:
用poi讀寫Excel並匯入資料
首先寫個工具類 用來讀寫Excel的 ... import java.io.FileNotFoundException; import java.io.IOException; import java.io.InputStream; import java.util
【原創】.NET讀寫Excel工具Spire.Xls使用(4)對資料操作與控制
Spire.Office for .NET是E-iceblue開發的一種企業級.NET Office編輯的軟體集合,包括Spire.Doc,Spire XLS,Spire.PDF,Spire.BarCode等等。.NET平臺的開發人員可以使用Spire.Office for .NET輕鬆的操作含有
python 讀寫excel資料--基礎
1. 通過xlrd模組讀取資料 需要安裝xlrd(pip install xlrd)並import from xlrd import open_workbook as owb 首先需要指定excel檔案,如果excel檔案和python指令碼在同一目錄,使用相對路徑就可
QT:QOdbc 讀寫 excel資料
新建空QT專案。 在.pro檔案中新增: QT+=widgets QT+=sql 新增main.cpp。 加入如下程式碼: #include <QApplication> #include <QSqlDatabase> #in
EPPlus 讀寫 Excel 資料收集
1. EPPlus概述 EPPlus 是使用Open Office XML格式(xlsx)讀寫Excel 2007 / 2010檔案的.net開發庫。 EPPlus 支援: 單元格範圍單元格樣式(邊框,顏色,填充,字型,數字,對齊)圖表圖片形狀批註表格保護加密資
【python爬蟲】讀寫、追加到excel檔案中
爬取糗事百科熱門 安裝 讀寫excel 依賴 pip install xlwt 安裝 追加excel檔案內容 依賴 pip install xlutils 安裝 lxml import csv import requests fr
Jxl對已有的excel追加資料或修改資料
public class ExcelTest { /** * @param args * @throws IOException * @throws BiffException * @thro
使用phpexcel類讀寫excel文件
如何 blank 第三方類庫 第三方類 文件 pex ffi bsp 地址 使用原生php讀寫excel文件的博文地址: 基於使用原生php讀寫excel文件的不靠譜,本文將簡單介紹如何使用第三方類庫phpexcel來讀寫excel文件。 首先,需要到githut下載php
python讀寫excel
字符串 一行 工作 default print file 設置 logs open python讀寫excel: # coding=utf-8 import xlrd import xlwt import traceback from xlutils.copy imp
Python讀寫excel表格的方法
python excel 表格 xls 目的:實現用python做excel的讀取、新增、修改操作。環境:ubuntu 16.04 Python 3.5.2用python讀寫文檔,一般是操作txt文件或者可以用記事本打開的文件,因為這個操作很直接,不需要導入其他模塊,但如果想要對excel表
Python讀寫excel表格的方法二
python excel 讀寫表格 目的:實現用python的另一種方法做excel的讀取、新增操作。環境:ubuntu 16.04 Python 3.5.2情景:之前介紹了一種操作excel文件的方法(私鏈),現在使用另一種方法讀寫excel文件,一次性讀出或寫入,讀寫也很方便,讀出為有序字典
Java讀寫Excel之POI超入門(轉)
num mov war copy rbo workbook mon move dropdown Apache POI 是用Java編寫的免費開源的跨平臺的 Java API,Apache POI提供API給Java程式對Microsoft Office格式檔案讀和寫的功
[Python3]讀寫Excel - openpyxl庫
註釋 出版 logs com lin author arc ltm 一行 什麽是openpyxl openpyxl是一個第三方的pythonexcel讀寫庫,支持Excel2010 xlsx/xlsm/xltx/xltm文件格式。 openpyxl提供哪些能力?
python讀寫Excel文件--使用xlrd模塊讀取,xlwt模塊寫入
xlrd get sta series 有趣 light log 分享 均值 一、安裝xlrd模塊和xlwt模塊 1. 下載xlrd模塊和xlwt模塊 到python官網http://pypi.python.org/pypi/xlrd下載模塊。下載的文件
node讀寫Excel操作
附錄 取數據 blog 代碼 width var uri body rda 目支持寫Excel的node.js模塊: node-xlsx: 基於Node.js解析excel文件數據及生成excel文件; excel-parser: 基於Node.js解析excel文件數據,
python 讀寫excel
excel文件 result rep core read pattern 參數 .sh pri 最近老大讓從網站上獲取數據,手動太慢,網上找了點python,用腳本操作。 1 import os 2 import re 3 4 import xlrd 5 im