jxl可以操作excel2007吗?可以

利用jxl创建一个sheet.xlsx 为什么打不开?直接创建一个sheet.xls就能打开,可是xlsx是2007的后缀名?

答:

jxl操作2007与老的excel api是不一样的你查一下文档看看就明白了.

package com.sky.oa.dto;

import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.net.MalformedURLException;
import java.net.URL;
import java.net.URLConnection;
import java.util.ArrayList;
import java.util.List;
import java.util.zip.ZipEntry;
import java.util.zip.ZipException;
import java.util.zip.ZipFile;

import jxl.Cell;
import jxl.CellType;
import jxl.DateCell;
import jxl.NumberCell;
import jxl.Sheet;
import jxl.Workbook;

import org.apache.http.util.EncodingUtils;
import org.textmining.text.extraction.WordExtractor;
import org.xmlpull.v1.XmlPullParser;
import org.xmlpull.v1.XmlPullParserException;

import android.os.Environment;
import android.util.Xml;

public class ReadOffice {

	public static String readDOC(String path) {
		// 创建输入流读取doc文件
		FileInputStream in;
		String text = null;
//		Environment.getExternalStorageDirectory().getAbsolutePath()+ "/aa.doc")
		try {
			in = new FileInputStream(new File(path));
			int a= in.available();
			System.out.println("文件长度:"+a);
			WordExtractor extractor = null;
			// 创建WordExtractor
			extractor = new WordExtractor();
			// 对doc文件进行提取
			text = extractor.extractText(in);
			System.out.println("解析得到的东西"+text);
		} catch (FileNotFoundException e) {
			e.printStackTrace();
		} catch (Exception e) {
			e.printStackTrace();
		}
		if (text == null) {
			text = "解析文件出现问题";
		}
		return text;
	}

	public static String readXLS(String path) {
		String str = "";
		try {
			Workbook workbook = null;
			workbook = Workbook.getWorkbook(new File(path));
			Sheet sheet = workbook.getSheet(0);
			Cell cell = null;
			int columnCount = sheet.getColumns();
			int rowCount = sheet.getRows();
			for (int i = 0; i < rowCount; i++) {
				for (int j = 0; j < columnCount; j++) {
					cell = sheet.getCell(j, i);
					String temp2 = "";
					if (cell.getType() == CellType.NUMBER) {
						temp2 = ((NumberCell) cell).getValue() + "";
					} else if (cell.getType() == CellType.DATE) {
						temp2 = "" + ((DateCell) cell).getDate();
					} else {
						temp2 = "" + cell.getContents();
					}
					str +=temp2+"    ";
				}
				str += "\n";
			}
			workbook.close();
		} catch (Exception e) {
		}
		if (str == null) {
			str = "解析文件出现问题";
		}
		return str;
	}

	public static String readTXT(String path) {
		String strReturn = "";
		try {
			FileInputStream fis = new FileInputStream(
					new File(path));
			int length = fis.available();
			byte[] buffer = new byte[length];
			fis.read(buffer);
			strReturn = EncodingUtils.getString(buffer, "GB2312");
			System.out.println(strReturn);
			fis.close();
		} catch (FileNotFoundException e) {
			e.printStackTrace();
		} catch (IOException e) {
			e.printStackTrace();
		}
		if (strReturn == null) {
			strReturn = "解析文件出现问题";
		}
		return strReturn;
	}

	public static String readDOCX(String path) {
		String river = "";
		try {
			ZipFile xlsxFile = new ZipFile(new File(path));
			ZipEntry sharedStringXML = xlsxFile.getEntry("word/document.xml");
			InputStream inputStream = xlsxFile.getInputStream(sharedStringXML);
			XmlPullParser xmlParser = Xml.newPullParser();
			xmlParser.setInput(inputStream, "utf-8");
			int evtType = xmlParser.getEventType();
			while (evtType != XmlPullParser.END_DOCUMENT) {
				switch (evtType) {
				case XmlPullParser.START_TAG:
					String tag = xmlParser.getName();
					System.out.println(tag);
					if (tag.equalsIgnoreCase("t")) {
						river += xmlParser.nextText() + "\n";
						System.out.println( xmlParser.nextText());
					}
					break;
				case XmlPullParser.END_TAG:
					break;
				default:
					break;
				}
				evtType = xmlParser.next();
			}
		} catch (ZipException e) {
			e.printStackTrace();
		} catch (IOException e) {
			e.printStackTrace();
		} catch (XmlPullParserException e) {
			e.printStackTrace();
		}
		if (river == null) {
			river = "解析文件出现问题";
		}
		return river;
	}

	public static String readXLSX(String path) {
		String str = "";
		String v = null;
		boolean flat = false;
		List<String> ls = new ArrayList<String>();
		try {
			ZipFile xlsxFile = new ZipFile(new File(path));
			ZipEntry sharedStringXML = xlsxFile
					.getEntry("xl/sharedStrings.xml");
			InputStream inputStream = xlsxFile.getInputStream(sharedStringXML);
			XmlPullParser xmlParser = Xml.newPullParser();
			xmlParser.setInput(inputStream, "utf-8");
			int evtType = xmlParser.getEventType();
			while (evtType != XmlPullParser.END_DOCUMENT) {
				switch (evtType) {
				case XmlPullParser.START_TAG:
					String tag = xmlParser.getName();
					if (tag.equalsIgnoreCase("t")) {
						ls.add(xmlParser.nextText());
					}
					break;
				case XmlPullParser.END_TAG:
					break;
				default:
					break;
				}
				evtType = xmlParser.next();
			}
			ZipEntry sheetXML = xlsxFile.getEntry("xl/worksheets/sheet1.xml");
			InputStream inputStreamsheet = xlsxFile.getInputStream(sheetXML);
			XmlPullParser xmlParsersheet = Xml.newPullParser();
			xmlParsersheet.setInput(inputStreamsheet, "utf-8");
			int evtTypesheet = xmlParsersheet.getEventType();
			while (evtTypesheet != XmlPullParser.END_DOCUMENT) {
				switch (evtTypesheet) {
				case XmlPullParser.START_TAG:
					String tag = xmlParsersheet.getName();
					if (tag.equalsIgnoreCase("row")) {
					} else if (tag.equalsIgnoreCase("c")) {
						String t = xmlParsersheet.getAttributeValue(null, "t");
						if (t != null) {
							flat = true;
							System.out.println(flat + "有");
						} else {
							System.out.println(flat + "没有");
							flat = false;
						}
					} else if (tag.equalsIgnoreCase("v")) {
						v = xmlParsersheet.nextText();
						if (v != null) {
							if (flat) {
								str += ls.get(Integer.parseInt(v)) + "  ";
							} else {
								str += v + "  ";
							}
						}
					}
					break;
				case XmlPullParser.END_TAG:
					if (xmlParsersheet.getName().equalsIgnoreCase("row")
							&& v != null) {
						str += "\n";
					}
					break;
				}
				evtTypesheet = xmlParsersheet.next();
			}
			System.out.println(str);
		} catch (ZipException e) {
			e.printStackTrace();
		} catch (IOException e) {
			e.printStackTrace();
		} catch (XmlPullParserException e) {
			e.printStackTrace();
		}
		if (str == null) {
			str = "解析文件出现问题";
		}

		return str;
	}

	public String downloadNet(String path) throws MalformedURLException {
		// 下载网络文件
		String s="";
		int bytesum = 0;
		int byteread = 0;
		URL url = new URL(path);
		try {
			URLConnection conn = url.openConnection();
			InputStream inStream = conn.getInputStream();
			FileOutputStream fs = new FileOutputStream(
					"/sdcard/skydownload/oo.doc");
			byte[] buffer = new byte[512];
			while ((byteread = inStream.read(buffer)) != -1) {
				bytesum += byteread;
				System.out.println(bytesum);
				fs.write(buffer, 0, byteread);
			}
		} catch (FileNotFoundException e) {
			e.printStackTrace();
		} catch (IOException e) {
			e.printStackTrace();
		}
		return s;
	}

	
	public static String readPPTX(String path) {
		List<String> ls = new ArrayList<String>();
		String river = "";
		ZipFile xlsxFile = null;
		try {
			xlsxFile = new ZipFile(new File(path));// pptx按照读取zip格式读取
		} catch (ZipException e1) {
			e1.printStackTrace();
		} catch (IOException e1) {
			e1.printStackTrace();
		}
		try {
			ZipEntry sharedStringXML = xlsxFile.getEntry("[Content_Types].xml");// 找到里面存放内容的文件
			InputStream inputStream = xlsxFile.getInputStream(sharedStringXML);// 将得到文件流
			XmlPullParser xmlParser = Xml.newPullParser();// 实例化pull
			xmlParser.setInput(inputStream, "utf-8");// 将流放进pull中
			int evtType = xmlParser.getEventType();// 得到标签类型的状态
			while (evtType != XmlPullParser.END_DOCUMENT) {// 循环读取流
				switch (evtType) {
				case XmlPullParser.START_TAG: // 判断标签开始读取
					String tag = xmlParser.getName();// 得到标签
					if (tag.equalsIgnoreCase("Override")) {
						String s = xmlParser
								.getAttributeValue(null, "PartName");
						if (s.lastIndexOf("/ppt/slides/slide") == 0) {
							ls.add(s);
						}
					}
					break;
				case XmlPullParser.END_TAG:// 标签读取结束
					break;
				default:
					break;
				}
				evtType = xmlParser.next();// 读取下一个标签
			}
		} catch (ZipException e) {
			e.printStackTrace();
		} catch (IOException e) {
			e.printStackTrace();
		} catch (XmlPullParserException e) {
			e.printStackTrace();
		}
		for (int i = 1; i < (ls.size() + 1); i++) {// 假设有6张幻灯片
			river += "第" + i + "张················" + "\n";
			try {
				ZipEntry sharedStringXML = xlsxFile.getEntry("ppt/slides/slide"
						+ i + ".xml");// 找到里面存放内容的文件
				InputStream inputStream = xlsxFile
						.getInputStream(sharedStringXML);// 将得到文件流
				XmlPullParser xmlParser = Xml.newPullParser();// 实例化pull
				xmlParser.setInput(inputStream, "utf-8");// 将流放进pull中
				int evtType = xmlParser.getEventType();// 得到标签类型的状态
				while (evtType != XmlPullParser.END_DOCUMENT) {// 循环读取流
					switch (evtType) {
					case XmlPullParser.START_TAG: // 判断标签开始读取
						String tag = xmlParser.getName();// 得到标签
						if (tag.equalsIgnoreCase("t")) {
							river += xmlParser.nextText() + "\n";
						}
						break;
					case XmlPullParser.END_TAG:// 标签读取结束
						break;
					default:
						break;
					}
					evtType = xmlParser.next();// 读取下一个标签
				}
			} catch (ZipException e) {
				e.printStackTrace();
			} catch (IOException e) {
				e.printStackTrace();
			} catch (XmlPullParserException e) {
				e.printStackTrace();
			}
		}
		if (river == null) {
			river = "解析文件出现问题";
		}
		return river;
	}
}


 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值