package me.zhouzhuo.zzexcelcreatordemo; import android.Manifest; import android.content.Intent; import android.content.pm.PackageManager; import android.graphics.Paint; import android.os.AsyncTask; import android.os.Build; import android.os.Environment; import android.support.annotation.NonNull; import android.support.v7.app.AppCompatActivity; import android.os.Bundle; import android.util.Log; import android.view.View; import android.widget.Button; import android.widget.EditText; import android.widget.ScrollView; import android.widget.Toast; import java.io.File; import java.io.IOException; import jxl.format.Alignment; import jxl.format.Colour; import jxl.format.VerticalAlignment; import jxl.read.biff.BiffException; import jxl.write.WritableCellFormat; import jxl.write.WritableFont; import jxl.write.WriteException; import me.zhouzhuo.zzexcelcreator.ZzExcelCreator; import me.zhouzhuo.zzexcelcreator.ZzFormatCreator; public class MainActivity extends AppCompatActivity { /** * Excel保存路径 */ private static final String PATH = Environment.getExternalStorageDirectory().getAbsolutePath() + "/ZzExcelCreator/"; private EditText etFileName; private EditText etSheetName; private Button btnCreate; private EditText etRow; private EditText etCol; private EditText etString; private Button btnAddString; private EditText etNumber; private Button btnAddNumber; private EditText etStartRow; private EditText etStartCol; private EditText etEndRow; private EditText etEndCol; private Button btnMerge; private EditText etRow1; private EditText etCol1; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); assignViews(); } private void assignViews() { etFileName = (EditText) findViewById(R.id.et_file_name); etSheetName = (EditText) findViewById(R.id.et_sheet_name); btnCreate = (Button) findViewById(R.id.btn_create); etRow = (EditText) findViewById(R.id.et_row); etCol = (EditText) findViewById(R.id.et_col); etRow1 = (EditText) findViewById(R.id.et_row1); etCol1 = (EditText) findViewById(R.id.et_col1); etString = (EditText) findViewById(R.id.et_string); btnAddString = (Button) findViewById(R.id.btn_add_string); etNumber = (EditText) findViewById(R.id.et_number); btnAddNumber = (Button) findViewById(R.id.btn_add_number); etStartRow = (EditText) findViewById(R.id.et_start_row); etStartCol = (EditText) findViewById(R.id.et_start_col); etEndRow = (EditText) findViewById(R.id.et_end_row); etEndCol = (EditText) findViewById(R.id.et_end_col); btnMerge = (Button) findViewById(R.id.btn_merge); btnCreate.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { if (Build.VERSION.SDK_INT >= 23) { if (checkSelfPermission(Manifest.permission.WRITE_EXTERNAL_STORAGE) != PackageManager.PERMISSION_GRANTED) { requestPermissions(new String[]{Manifest.permission.WRITE_EXTERNAL_STORAGE}, 0x01); } else { createExcel(); } } else { createExcel(); } } }); btnMerge.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { final String fileName = etFileName.getText().toString().trim(); final String co1l = etStartCol.getText().toString().trim(); final String row1 = etStartRow.getText().toString().trim(); final String co12 = etEndCol.getText().toString().trim(); final String row2 = etEndRow.getText().toString().trim(); new AsyncTask<String, Void, Integer>() { @Override protected Integer doInBackground(String... params) { try { ZzExcelCreator .getInstance() .openExcel(new File(PATH + fileName + ".xls")) .openSheet(0) .merge(Integer.parseInt(params[0]), Integer.parseInt(params[1]), Integer.parseInt(params[2]), Integer.parseInt(params[3])) .close(); return 1; } catch (IOException | WriteException | BiffException e) { e.printStackTrace(); return 0; } } @Override protected void onPostExecute(Integer aVoid) { super.onPostExecute(aVoid); if (aVoid == 1) { Toast.makeText(MainActivity.this, "合并成功!", Toast.LENGTH_SHORT).show(); } else { Toast.makeText(MainActivity.this, "合并失败!", Toast.LENGTH_SHORT).show(); } } }.execute(co1l, row1, co12, row2); } }); btnAddNumber.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { final String fileName = etFileName.getText().toString().trim(); final String col = etCol1.getText().toString().trim(); final String row = etRow1.getText().toString().trim(); final String str = etNumber.getText().toString().trim(); new AsyncTask<String, Void, Integer>() { @Override protected Integer doInBackground(String... params) { try { WritableCellFormat format = ZzFormatCreator .getInstance() .createCellFont(WritableFont.ARIAL) .setAlignment(Alignment.CENTRE, VerticalAlignment.CENTRE) .setFontSize(14) .setFontColor(Colour.ROSE) .getCellFormat(); ZzExcelCreator .getInstance() .openExcel(new File(PATH + fileName + ".xls")) .openSheet(0) .fillNumber(Integer.parseInt(col), Integer.parseInt(row), Double.parseDouble(str), format) .close(); return 1; } catch (IOException | WriteException | BiffException e) { e.printStackTrace(); return 0; } } @Override protected void onPostExecute(Integer aVoid) { super.onPostExecute(aVoid); if (aVoid == 1) { Toast.makeText(MainActivity.this, "插入成功!", Toast.LENGTH_SHORT).show(); } else { Toast.makeText(MainActivity.this, "插入失败!", Toast.LENGTH_SHORT).show(); } } }.execute(col, row, str); } }); btnAddString.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { final String fileName = etFileName.getText().toString().trim(); final String col = etCol.getText().toString().trim(); final String row = etRow.getText().toString().trim(); final String str = etString.getText().toString().trim(); new AsyncTask<String, Void, Integer>() { @Override protected Integer doInBackground(String... params) { try { WritableCellFormat format = ZzFormatCreator .getInstance() .createCellFont(WritableFont.ARIAL) .setAlignment(Alignment.CENTRE, VerticalAlignment.CENTRE) .setFontSize(14) .setFontColor(Colour.DARK_GREEN) .getCellFormat(); ZzExcelCreator .getInstance() .openExcel(new File(PATH + fileName + ".xls")) .openSheet(0) .setColumnWidth(Integer.parseInt(col), 25) .setRowHeight(Integer.parseInt(row), 400) .fillContent(Integer.parseInt(col), Integer.parseInt(row), str, format) .close(); return 1; } catch (IOException | WriteException | BiffException e) { e.printStackTrace(); return 0; } } @Override protected void onPostExecute(Integer aVoid) { super.onPostExecute(aVoid); if (aVoid == 1) { Toast.makeText(MainActivity.this, "插入成功!", Toast.LENGTH_SHORT).show(); } else { Toast.makeText(MainActivity.this, "插入失败!", Toast.LENGTH_SHORT).show(); } } }.execute(col, row, str); } }); } private void createExcel() { String fileName = etFileName.getText().toString().trim(); String sheetName = etSheetName.getText().toString().trim(); new AsyncTask<String, Void, Integer>() { @Override protected Integer doInBackground(String... params) { try { ZzExcelCreator .getInstance() .createExcel(PATH, params[0]) .createSheet(params[1]) .close(); return 1; } catch (IOException | WriteException e) { e.printStackTrace(); return 0; } } @Override protected void onPostExecute(Integer aVoid) { super.onPostExecute(aVoid); if (aVoid == 1) { Toast.makeText(MainActivity.this, "表格创建成功!请到" + PATH + "路径下查看~", Toast.LENGTH_SHORT).show(); } else { Toast.makeText(MainActivity.this, "表格创建失败!", Toast.LENGTH_SHORT).show(); } } }.execute(fileName, sheetName); } @Override public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) { super.onRequestPermissionsResult(requestCode, permissions, grantResults); switch (requestCode) { case 0x01: if (grantResults.length > 0 && grantResults[0] == PackageManager.PERMISSION_GRANTED) { createExcel(); } break; } } }