發表文章

目前顯示的是 12月, 2014的文章

[java]xlsx to json using apache poi

Xlsx to JsonArray 註解雖然是英文的,個人還是覺得挺直覺得XD 需要自取,自行參閱。 好處是說當遇到很大的Excel要用,但又不想數格子數到瘋掉很好用。 缺點是說需要再針對excel再處理一次,數格子來寫當然就程式的執行來說比較快。 但眼睛也會花花花,不小心匯錯更麻煩。 大檔處理我沒解決(因為我遇到的是100*10000)UP的data 如果有前輩看得的話可以提供給我幾個關鍵字去找相關data 目前看到的是JAVA SAX,但好亂>"< code : import java.io.File; import java.io.IOException; import org.apache.poi.openxml4j.exceptions.InvalidFormatException; import org.apache.poi.ss.usermodel.Row; import org.apache.poi.ss.usermodel.Row.MissingCellPolicy; import org.apache.poi.ss.usermodel.Sheet; import org.apache.poi.ss.usermodel.Workbook; import org.apache.poi.ss.usermodel.WorkbookFactory; import org.json.JSONArray; import org.json.JSONObject; /**  * Xlsx tojson  *  * @author bonder chou  */ public class Xlsx {   /**    * Xlsx to JSONARRAY first row is jsonKey , others row is data row    *    * @see    * https://poi.apache.org/apidocs/org/apache/poi/ss/usermodel/class-use/Row.MissingCellPolicy.html    * @param path excel path    * @param policy

[java]PreparedStatement Transaction Sample

語法如下,資料庫記得要設成有交易機制的資料庫如InnoDB MyISAM這類本身不支援交易機制新增訂單會成功但明細會失敗 可我們要的是全部都新增失敗所以會有一點點兒的問題,可以在catch內在寫段delete來解決這個問題。         Connection con = null;         PreparedStatement ps_purchase = null;         PreparedStatement ps_purchase_detial = null;         ResultSet rsKey = null;         String id = null;         String sql = null;         try {             //取得連線             con = Global.getConnWeb();             //開啟交易機制             con.setAutoCommit(false);             sql = "INSERT INTO `purchase` (`user_name`,`phone`,`address`) VALUES (?,?,?)";             //設定回傳KEY             ps_purchase = con.prepareStatement(sql, Statement.RETURN_GENERATED_KEYS);             //收貨人             ps_purchase.setString(1, "Alber");             //聯絡電話             ps_purchase.setString(2, "+8869123456789");             //地址             ps_purchase.setString(3, "台南市很愛里一號");             //加入批次新增列表             ps_purchase.addBatch();      

[javascript]當月第一天、當月最後一天

 //取當日  var startdate = new Date(); //設定日期為第一天 startdate.setDate(1); //取當日  var enddate = new Date(); //將月份移至下個月份  enddate.setMonth(enddate.getMonth()+1); //設定為下個月份的第一天  enddate.setDate(1);  //將日期-1為當月的最後一天 enddate.setDate(enddate.getDate()-1);

[POI]設定邊界setMarge釋疑

我在setMarge時設定邊界為0.25但是在Excel上邊界顯示的卻是0.6 追查一下發現原來是setMarge設定的是英吋 https://poi.apache.org/apidocs/org/apache/poi/ss/usermodel/Sheet.html#setMargin(short,%20double) 而EXCEL顯示的卻是CM 所以在設定邊界時要稍微注意一下這裡的單位計算