当前位置: 首页 > news >正文

宜昌网站制作wordpress调用page

宜昌网站制作,wordpress调用page,网站维护公告模板,培训机构做网站宣传对于那些需要使用全功能excel文件(即绘图,VBA等等)的应用程序,你应该使用Apache POI,它很简单,但现在仍然是最好的解决方案.但是,如果您只需要阅读Excel,那么使用JavaScript解决方案可能会更好.使用js-xlsx库,您可以将Excel文件传输到JSON.库大小很小,只有395KB(仅包括xlsx.cor…对于那些需要使用全功能excel文件(即绘图,VBA等等)的应用程序,你应该使用Apache POI,它很简单,但现在仍然是最好的解决方案.但是,如果您只需要阅读Excel,那么使用JavaScript解决方案可能会更好.使用js-xlsx库,您可以将Excel文件传输到JSON.库大小很小,只有395KB(仅包括xlsx.core.min.js)我相信这不是最好的解决方案– WebView需要使用UI Thread,它可能会在读取大型Excel文件时阻止UI.– 性能问题但您可以将其更改为其他JavaScript引擎(如Rhino或V8)以解决这些问题.这是代码回调接口public interface ExcelReaderListener {void onReadExcelCompleted(List stringList);}主要活动private ProgressDialog progressDialog;protected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);new AlertDialog.Builder(MainActivity.this).setMessage(message).setTitle(title).setPositiveButton(R.string.ok,new DialogInterface.OnClickListener() {Overridepublic void onClick(DialogInterface dialog,int which) {dialog.dismiss();new FileChooser(MainActivity.this,new String[]{xls,xlsx}).setFileListener(new FileChooser.FileSelectedListener() {Overridepublic void fileSelected(File file) {progressDialog new ProgressDialog(MainActivity.this);progressDialog.setTitle(title);progressDialog.setMessage(message);progressDialog.setIndeterminate(true);progressDialog.setCanceledOnTouchOutside(false);Toast.makeText(MainActivity.this,file.getName(),Toast.LENGTH_SHORT).show();String filePath file.getAbsolutePath();ExcelReaderListener excelReaderListener MainActivity.this;progressDialog.show();try {final WebView webView new WebView(MainActivity.this);new JSExcelReader(filePath,webView,excelReaderListener);} catch (Exception ex) {Log.e(Import excel error,ex.getMessage());}}}).showDialog();}}).show();}Overridepublic void onReadExcelCompleted(List stringList) {Toast.makeText(MainActivity.this,Parse Completed,Toast.LENGTH_SHORT).show();if (progressDialog ! null progressDialog.isShowing()) {progressDialog.dismiss();}// Write into DB...}用户选择excel文件的界面https://rogerkeays.com/simple-android-file-chooserJSExcelReader :(读取excel并将其转换为ArrayList的核心部分)public class JSExcelReader {private ExcelReaderListener callback;public JSExcelReader(String filePath,final WebView webView,ExcelReaderListener callback) {this.callback callback;File file new File(filePath);try (InputStream is new FileInputStream(file)) {// convert file to Base64if (file.length() Integer.MAX_VALUE)Log.e(File too big,file too big);byte[] bytes new byte[(int) file.length()];int offset 0;int numRead;while (offset bytes.length (numRead is.read(bytes,offset,bytes.length - offset)) 0) {offset numRead;}if (offset bytes.length)throw new Exception(Could not completely read file);final String b64 Base64.encodeToString(bytes,Base64.NO_WRAP);// feed the string into webview and get the resultWebSettings webSettings webView.getSettings();webSettings.setJavaScriptEnabled(true);webView.loadUrl(file:///android_asset/AndroidParseExcel.html);webView.setWebViewClient(new WebViewClient() {public void onPageFinished(WebView view,String url) {webView.evaluateJavascript(convertFile( b64 );,new ValueCallback() {Overridepublic void onReceiveValue(String value) {parseJSON(value);}});}});} catch (Exception ex) {Log.e(Convert Excel failure,ex.getMessage());}}private void parseJSON(String jsonString) {try {// return value is something like {\n\Sheet1\:\n[\title\...// you need to remove those escape character firstJSONObject jsonRoot new JSONObject(jsonString.substring(1,jsonString.length() - 1).replaceAll(\\\\n,).replaceAll(\\\\\,\).replaceAll(\\\\\\\\\,));JSONArray sheet1 jsonRoot.optJSONArray(Sheet1);List stringList new ArrayList();JSONObject jsonObject;for (int i 0; i sheet1.length(); i) {jsonObject sheet1.getJSONObject(i);stringList.add(jsonObject.optString(title));}callback.onReadExcelCompleted(stringList);} catch (Exception ex) {Log.e(Error in parse JSON,ex.getMessage());}}}AndroidParseExcel.html :(你应该把这个和JavaScript库放到资产文件夹中)use strict;var X XLSX;function convertFile(b64data) {var wb X.read(b64data,{type: base64,WTF: false});var result {};wb.SheetNames.forEach(function(sheetName) {var roa X.utils.sheet_to_row_object_array(wb.Sheets[sheetName]);if(roa.length 0){result[sheetName] roa;}});return JSON.stringify(result,2,2);}
http://www.zqtcl.cn/news/46316/

相关文章:

  • 手机网站制作天强科技百度账户安全中心
  • 静态网站有后台吗淘宝客 网站 建站
  • ups国际快递网站建设模块分析网站建设用户调查报告
  • 上海建设摩托官方网站wordpress rewrite nginx
  • 安徽教育云平台网站建设余姚的网站建设
  • 国际营销网站建设wordpress隐秘链接
  • 建网站的公司 快云百度给做的网站如何登陆网站后台
  • 推广策划案河北网络营销推广seo
  • 泰安定制网站建设公司贵阳做网站公司排名
  • 郑州网站建设知乎广州网站开发水平广州亦客网络
  • 专业网站建设哪家效果好营销网站的优点
  • 新手如何自己建网站小程序 wordpress绑定
  • 怎么做网站开发的方案装饰公司名称
  • 手机端网站首页怎么做网络营销与直播电商课程
  • 专门做评论的网站打广告在哪里打最有效
  • 网站建设报价word文档wordpress初级教程
  • 纸 技术支持 东莞网站建设网站开发项目计划书ppt
  • 旅游景区网站建设规划wordpress去掉页眉
  • 做的网站在百度找不到了wordpress投递文章插件
  • 如何做切片网站宽屏大气网站模板
  • 南宁机关两学一做网站如何开发小程序?
  • 怎么优化自己的网站人人车的网站找谁做的
  • 企业门户网站建设特色wordpress随机广告
  • 廊坊网站制作官网专业的建站公司都具备什么条件
  • 广西壮族自治区教育厅官网闵行区seo快速排名优化哪里好
  • 网站设计与制作平台仿做国外产品网站出路
  • 对php网站开发技术课程总结有些中小网站
  • 建微信网站wordpress加速网站插件
  • 网站建站主题网络营销推广师
  • 江苏省招投标办法建设厅网站seo攻略