主流的操作Excel的有两种方法,一种是通过poi包,另一种是通过jxl包。这里我主要讲解通过jxl包来读写Excel。

首先需要导入一个jxl.jar包。

下载地址:http://www.andykhan.com/jexcelapi/download.html

下载后的文件会包含jxl相关的API。

下面直接上代码:

WriteExcel.java

  1 import java.io.File;
2
3 import java.io.IOException;
4
5 import java.util.Locale;
6
7
8
9 import jxl.CellView;
10
11 import jxl.Workbook;
12
13 import jxl.WorkbookSettings;
14
15 import jxl.format.UnderlineStyle;
16
17 import jxl.write.Formula;
18
19 import jxl.write.Label;
20
21 import jxl.write.Number;
22
23 import jxl.write.WritableCellFormat;
24
25 import jxl.write.WritableFont;
26
27 import jxl.write.WritableSheet;
28
29 import jxl.write.WritableWorkbook;
30
31 import jxl.write.WriteException;
32
33 import jxl.write.biff.RowsExceededException;
34
35
36
37 public class WriteExcel {
38
39
40
41 private WritableCellFormat timesBoldUnderline;
42
43 private WritableCellFormat times;
44
45 private String inputFile;
46
47
48
49 public void setOutputFile(String inputFile) {
50
51 this.inputFile = inputFile;
52
53 }
54
55
56
57 public void write() throws IOException, WriteException {
58
59 File file = new File(inputFile);
60
61 WorkbookSettings wbSettings = new WorkbookSettings();
62
63
64
65 wbSettings.setLocale(new Locale("en", "EN"));
66
67
68
69 WritableWorkbook workbook = Workbook.createWorkbook(file, wbSettings);
70
71 workbook.createSheet("Report", 0);
72
73 WritableSheet excelSheet = workbook.getSheet(0);
74
75 createLabel(excelSheet);
76
77 createContent(excelSheet);
78
79
80
81 workbook.write();
82
83 workbook.close();
84
85 }
86
87
88
89 private void createLabel(WritableSheet sheet)
90
91 throws WriteException {
92
93
94
95 WritableFont times10pt = new WritableFont(WritableFont.TIMES, 10);
96
97
98
99 times = new WritableCellFormat(times10pt);
100
101
102
103 times.setWrap(true);
104
105
106
107 WritableFont times10ptBoldUnderline = new WritableFont(WritableFont.TIMES, 10, WritableFont.BOLD, false,
108
109 UnderlineStyle.SINGLE);
110
111 timesBoldUnderline = new WritableCellFormat(times10ptBoldUnderline);
112
113
114
115 timesBoldUnderline.setWrap(true);
116
117
118
119 CellView cv = new CellView();
120
121 cv.setFormat(times);
122
123 cv.setFormat(timesBoldUnderline);
124
125 cv.setAutosize(true);
126
127
128
129
130
131 addCaption(sheet, 0, 0, "Header 1");
132
133 addCaption(sheet, 1, 0, "This is another header");
134
135
136
137
138
139 }
140
141
142
143 private void createContent(WritableSheet sheet) throws WriteException,
144
145 RowsExceededException {
146
147
148
149 for (int i = 1; i < 10; i++) {
150
151
152
153 addNumber(sheet, 0, i, i + 10);
154
155
156
157 addNumber(sheet, 1, i, i * i);
158
159 }
160
161
162
163 StringBuffer buf = new StringBuffer();
164
165 buf.append("SUM(A2:A10)");
166
167 Formula f = new Formula(0, 10, buf.toString());
168
169 sheet.addCell(f);
170
171 buf = new StringBuffer();
172
173 buf.append("SUM(B2:B10)");
174
175 f = new Formula(1, 10, buf.toString());
176
177 sheet.addCell(f);
178
179
180
181 for (int i = 12; i < 20; i++) {
182
183 addLabel(sheet, 0, i, "Boring text " + i);
184
185 addLabel(sheet, 1, i, "Another text");
186
187 }
188
189 }
190
191
192
193 private void addCaption(WritableSheet sheet, int column, int row, String s)
194
195 throws RowsExceededException, WriteException {
196
197 Label label;
198
199 label = new Label(column, row, s, timesBoldUnderline);
200
201 sheet.addCell(label);
202
203 }
204
205
206
207 private void addNumber(WritableSheet sheet, int column, int row,
208
209 Integer integer) throws WriteException, RowsExceededException {
210
211 Number number;
212
213 number = new Number(column, row, integer, times);
214
215 sheet.addCell(number);
216
217 }
218
219
220
221 private void addLabel(WritableSheet sheet, int column, int row, String s)
222
223 throws WriteException, RowsExceededException {
224
225 Label label;
226
227 label = new Label(column, row, s, times);
228
229 sheet.addCell(label);
230
231 }
232
233
234
235 }

ReadExcel.java

 1 import java.io.File;
2 import java.io.IOException;
3
4 import jxl.Cell;
5 import jxl.CellType;
6 import jxl.Sheet;
7 import jxl.Workbook;
8 import jxl.read.biff.BiffException;
9
10 public class ReadExcel {
11 private String inputFile;
12
13 public void setInputFile(String inputFile) {
14 this.inputFile = inputFile;
15 }
16
17 public void read() throws IOException {
18 File inputWorkbook = new File(inputFile);
19 Workbook w;
20 try {
21 w = Workbook.getWorkbook(inputWorkbook);
22
23 Sheet sheet = w.getSheet(0);
24
25 for (int j = 0; j < sheet.getColumns(); j++) {
26 for (int i = 0; i < sheet.getRows(); i++) {
27 Cell cell = sheet.getCell(j, i);
28 CellType type = cell.getType();
29 if (type == CellType.LABEL) {
30 System.out.println("I got a label "
31 + cell.getContents());
32 }
33
34 if (type == CellType.NUMBER) {
35 System.out.println("I got a number "
36 + cell.getContents());
37 }
38
39 }
40 }
41 } catch (BiffException e) {
42 e.printStackTrace();
43 }
44 }
45
46 }

调运WriteExcel的代码:

 1     WriteExcel writeExcel=new WriteExcel();
2
3 writeExcel.setOutputFile("/sdcard/test.xls");
4
5 try {
6
7 writeExcel.write();
8
9 } catch (IOException e) {
10
11 e.printStackTrace();
12
13 } catch (WriteException e) {
14
15 e.printStackTrace();
16
17 }

执行完WriteExcel后便会在Android虚拟机中生成test.xls文件

调运ReadExcel的代码:

 1 ReadExcel readExcel=new ReadExcel();
2
3 readExcel.setInputFile("/sdcard/test.xls");
4
5 try {
6
7 readExcel.read();
8
9 } catch (IOException e) {
10
11 e.printStackTrace();
12
13 }
14
15

好了,Android读写Excel的功能就能基本实现了。

Android创建与读取Excel的更多相关文章

  1. C# 处理Excel公式(一)——创建、读取Excel公式

    对于数据量较大的表格,需要计算一些特殊数值时,我们通过运用公式能有效提高我们数据处理的速度和效率,对于后期数据的增删改查等的批量操作也很方便.此外,对于某些数值的信息来源,我们也可以通过读取数据中包含 ...

  2. C# -- 使用Aspose.Cells创建和读取Excel文件

    使用Aspose.Cells创建和读取Excel文件 1. 创建Excel Aspose.Cells.License li = new Aspose.Cells.License(); li.SetLi ...

  3. 使用Apache下poi创建和读取excel文件

    一:使用apache下poi创建excel文档 @Test /* * 使用Apache poi创建excel文件 */ public void testCreateExcel() { // 1:创建一 ...

  4. C# 创建 写入 读取 excel

    public static void CreateExcelFile(string FileName, List<UUser> luu) { ] == "xlsx")/ ...

  5. LR创建数据源读取excel

    1 在window上创建数据源   2 创建对应的数据文件 excel 注:注意格式和底部的表单名称 3 Vegen中创建参数 注意:机器数据源选择windows的ODBC数据源 SQL查的是(she ...

  6. node.js、js读取excel、操作excel、创建excel之js-xlsx.js

    node.js篇 第一步引入包 npm install xlsx -save 第二步使用 var xl =require('xlsx'); //workbook 对象,指的是整份 Excel 文档.我 ...

  7. jsp中excel文件的创建与读取

    1.创建excel文件//这里的jxl不是java的标准jar包,需要在项目中另外加载 import jxl.Workbook; import jxl.write.Label; import jxl. ...

  8. Android读取Excel文件

    转:http://bigcat.easymorse.com/?p=1648 java可以读取Excel文件,android同样也行,效果如下: excel源文件: 读取日志如下: 首先需要引入jxl. ...

  9. python:创建文件夹:写入文本1:读取txt:读取Excel文件遍历文件夹:

    https://blog.csdn.net/u011956147/article/details/80369731 创建文件夹: import osimport shutil def buildfil ...

随机推荐

  1. 百度——LBS.云 v2.0——云存储的POI创建和删除--Android 源码

    如有疑问请联系:QQ936467727 需要注意的几点问题: 1.密钥是http://lbsyun.baidu.com/apiconsole/key申请的,密钥类型是浏览器端 2.geotable_i ...

  2. uva Stacks of Flapjacks

                                                     Stacks of Flapjacks  题目链接:Click Here~ 题目描写叙述:     ...

  3. 百度前端技术学院Html&CSS学习资源

    Web相关名词通俗解释 https://www.zhihu.com/question/22689579 MDN HTML入门 https://developer.mozilla.org/zh-CN/d ...

  4. 通知/代理/block 三者比对

    通知 :   “一对多”,”多对一” 传值 四个步骤:  1.发送通知2.创建监听者3.接收通知4.移除监听者 使用场景:1- 很多控制器都需要知道一个事件,应该用通知:2 - 相隔多层的两个控制器之 ...

  5. 比较和排序 IComparable And IComparer

    1.List<Student>默认排序 为类创建默认排序实现IComparable,此代码的实现为年龄升序 using System; using System.Collections.G ...

  6. asp.neti 加密三种方式

    public string Get_MD5_Method1(string strSource) { System.Security.Cryptography.MD5 md5 = new System. ...

  7. html 7大知识点

    HTML是web前端开发的基础,学习前端的人都是先从html学起的. 关于HTML有一些必备的知识点,这些知识点都是HTML中最基本的内容,也是前端面试最常问的知识点. 1.网页结构网页结构一般都包含 ...

  8. The Power of Reading——英语学习小技巧之七

    This method is "The Power of Reading" and it comes from an article by Dr.Stephen Krashen. ...

  9. plsql 的循环之 goto

    实例: /* 测试goto 的用法, */ procedure test_loop_go(pi_aab001 in number, po_fhz out varchar2, po_msg out va ...

  10. selenium 怎么处理display:none

    页面HTML是这样的:  .... <div class="cf w index-middle"> <div id="li" class=&q ...