主流的操作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. 统计难题(trie树)

    统计难题 Time Limit: 4000/2000 MS (Java/Others)    Memory Limit: 131070/65535 K (Java/Others)Total Submi ...

  2. 制作自己的私有库(cocopods)

    1.首先你需要创建一个私有的仓库,用于存放自己的podspec相关文件,至于git服务器你可以用http://git.oschina.net/,或者自己搭建的都行.我在git服务器上创建了一个名字叫T ...

  3. C#_会员管理系统:开发七(用户分类)

    登录界面(VIPLogin.cs)详细代码: using System; using System.Collections.Generic; using System.ComponentModel; ...

  4. centos 6.4 FTP安装和配置

    链接地址:http://blog.csdn.net/wind520/article/details/38019647 1: 安装 检查是否安装 [root@localhost ~]# rpm -qa ...

  5. [Swust OJ 797]--Palindromic Squares(回文数水题)

    题目链接:http://acm.swust.edu.cn/problem/797/ Time limit(ms): 1000 Memory limit(kb): 10000   Description ...

  6. BZOJ 1202: [HNOI2005]狡猾的商人( 差分约束 )

    好像很多人用并查集写的... 前缀和, 则 sumt - sums-1 = v, 拆成2条 : sumt ≤ sums-1 + v, sums-1 ≤ sumt - v 就是一个差分约束, 建图跑SP ...

  7. BZOJ 1613: [Usaco2007 Jan]Running贝茜的晨练计划( dp)

    dp乱搞即可...( 我就是这样 A 的.. 后来想改快一点..然后就WA了...不理了 ------------------------------------------------------- ...

  8. 【原创】MapGIS K9 三维二次开发入门

    开发语言:C# 平台版本:MapGIS K9 SP3 MapGIS K9三维平台也提供了接口和组件以实现二次开发.用户可以根据提供的接口和组件进行二次开发,也可以借助MapGISK9数据中心框架,可以 ...

  9. Oracle 如何写出高效的 SQL

    转自:Oracle 如何写出高效的 SQL 要想写出高效的SQL 语句需要掌握一些基本原则,如果你违反了这些原则,一般情况下SQL 的性能将会很差. 1. 减少数据库访问次数连接数据库是非常耗时的,虽 ...

  10. (转)跟我一起写MAKEFILE

    概述 —— 什么是makefile?或许很多Winodws的程序员都不知道这个东西,因为那些Windows的IDE都为你做了这个工作,但我觉得要作一个好的和professional的程序员,makef ...