『壹』 fastdfs服务器上的Excel文件不下载到本地可以直接解析吗
可以通过office控件来实现不下载到本地,直接解析读取内容。
『贰』 java 怎样解析 excel生成的xml文件
java解析excel生成的xml文件的方法是使用dom4j实现的。dom4j是一个简单的开源库,用于处理XML、 XPath和XSLT,它基于Java平台,使用Java的集合框架,全面集成了DOM,SAX和JAXP。1、excel生成的xml样例文件:<?xml version="1.0"?><?mso-application progid="Excel.Sheet"?><Workbook xmlns="urn:schemas-microsoft-com:office:spreadsheet" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:x="urn:schemas-microsoft-com:office:excel" xmlns:ss="urn:schemas-microsoft-com:office:spreadsheet" xmlns:html="http://www.w3.org/TR/REC-html40"> <DocumentProperties xmlns="urn:schemas-microsoft-com:office:office"> <Created>2006-09-16T00:00:00Z</Created> <LastSaved>2016-07-25T03:26:50Z</LastSaved> <Version>14.00</Version> </DocumentProperties> <OfficeDocumentSettings xmlns="urn:schemas-microsoft-com:office:office"> <AllowPNG/> <RemovePersonalInformation/> </OfficeDocumentSettings> <ExcelWorkbook xmlns="urn:schemas-microsoft-com:office:excel"> <WindowHeight>7956</WindowHeight> <WindowWidth>14808</WindowWidth> <WindowTopX>240</WindowTopX> <WindowTopY>168</WindowTopY> <ActiveSheet>2</ActiveSheet> <ProtectStructure>False</ProtectStructure> <ProtectWindows>False</ProtectWindows> </ExcelWorkbook> <Styles> <Style ss:ID="Default" ss:Name="Normal"> <Alignment ss:Vertical="Bottom"/> <Borders/> <Font ss:FontName="宋体" x:CharSet="134" ss:Size="11" ss:Color="#000000"/> <Interior/> <NumberFormat/> <Protection/> </Style> <Style ss:ID="s16" ss:Name="好"> <Font ss:FontName="宋体" x:CharSet="134" ss:Size="11" ss:Color="#006100"/> <Interior ss:Color="#C6EFCE" ss:Pattern="Solid"/> </Style> <Style ss:ID="s17"> <Alignment ss:Horizontal="Left" ss:Vertical="Center" ss:Indent="1" ss:WrapText="1"/> <Font ss:FontName="宋体" x:CharSet="134" ss:Size="8" ss:Color="#686868"/> <NumberFormat ss:Format="@"/> </Style> <Style ss:ID="s18" ss:Parent="s16"> <Alignment ss:Vertical="Bottom"/> </Style> <Style ss:ID="s19"> <NumberFormat ss:Format="yyyy/m/d\ h:mm:ss"/> </Style> </Styles> <Worksheet ss:Name="Sheet1"> <Table ss:ExpandedColumnCount="6" ss:ExpandedRowCount="3" x:FullColumns="1" x:FullRows="1" ss:DefaultRowHeight="14.4"> <Row> <Cell><Data ss:Type="String">工号</Data></Cell> <Cell><Data ss:Type="String">姓名 </Data></Cell> <Cell ss:Index="5"><Data ss:Type="String">工号</Data></Cell> <Cell><Data ss:Type="String">姓名</Data></Cell> </Row> <Row> <Cell><Data ss:Type="Number">111</Data></Cell> <Cell><Data ss:Type="String">张三</Data></Cell> <Cell ss:Index="5"><Data ss:Type="Number">111</Data></Cell> <Cell ss:Formula="=VLOOKUP(R2C5:R3C5,RC[-5]:R[1]C[-4],2)"><Data ss:Type="String">张三</Data></Cell> </Row> <Row> <Cell><Data ss:Type="Number">112</Data></Cell> <Cell><Data ss:Type="String">李四</Data></Cell> <Cell ss:Index="5"><Data ss:Type="Number">112</Data></Cell> <Cell ss:Formula="=VLOOKUP(R2C5:R3C5,RC[-5]:R[1]C[-4],2)"><Data ss:Type="String">李四</Data></Cell> </Row> </Table> <WorksheetOptions xmlns="urn:schemas-microsoft-com:office:excel"> <PageSetup> <Header x:Margin="0.3"/> <Footer x:Margin="0.3"/> <PageMargins x:Bottom="0.75" x:Left="0.7" x:Right="0.7" x:Top="0.75"/> </PageSetup> <Panes> <Pane> <Number>3</Number> <ActiveRow>7</ActiveRow> <ActiveCol>5</ActiveCol> </Pane> </Panes> <ProtectObjects>False</ProtectObjects> <ProtectScenarios>False</ProtectScenarios> </WorksheetOptions> </Worksheet></Workbook>2、java解析代码:import java.io.File;import java.util.Iterator;import org.dom4j.Attribute;import org.dom4j.Document;import org.dom4j.Element;import org.dom4j.io.SAXReader;public class Demo { public static void main(String[] args) throws Exception { SAXReader reader = new SAXReader(); Document document = reader.read(new File("person.xml")); Element root = document.getRootElement(); Iterator it = root.elementIterator(); while (it.hasNext()) { Element element = (Element) it.next(); //未知属性名称情况下 /*Iterator attrIt = element.attributeIterator(); while (attrIt.hasNext()) { Attribute a = (Attribute) attrIt.next(); System.out.println(a.getValue()); }*/ //已知属性名称情况下 System.out.println("id: " + element.attributeValue("id")); //未知元素名情况下 /*Iterator eleIt = element.elementIterator(); while (eleIt.hasNext()) { Element e = (Element) eleIt.next(); System.out.println(e.getName() + ": " + e.getText()); } System.out.println();*/ //已知元素名情况下 System.out.println("title: " + element.elementText("title")); System.out.println("author: " + element.elementText("author")); System.out.println(); } }}
『叁』 java解析.xlsb格式的excel文件
通过这个例子,演示以下如何用java生成excel文件:import org.apache.poi.hssf.usermodel.*;import java.io.FileOutputStream;import java.io.IOException;publicclass CreateCells{publicstaticvoid main(String[] args)throws IOException{HSSFWorkbook wb = new HSSFWorkbook();//建立新HSSFWorkbook对象HSSFSheet sheet = wb.createSheet("new sheet");//建立新的sheet对象// Create a row and put some cells in it. Rows are 0 based.HSSFRow row = sheet.createRow((short)0);//建立新行// Create a cell and put a value in it.HSSFCell cell = row.createCell((short)0);//建立新cellcell.setCellValue(1);//设置cell的整数类型的值// Or do it on one line.row.createCell((short)1).setCellValue(1.2);//设置cell浮点类型的值row.createCell((short)2).setCellValue("test");//设置cell字符类型的值row.createCell((short)3).setCellValue(true);//设置cell布尔类型的值HSSFCellStyle cellStyle = wb.createCellStyle();//建立新的cell样式cellStyle.setDataFormat(HSSFDataFormat.getFormat("m/d/yy h:mm"));//设置cell样式为定制的日期格式HSSFCell dCell =row.createCell((short)4);dCell.setCellValue(new Date());//设置cell为日期类型的值dCell.setCellStyle(cellStyle); //设置该cell日期的显示格式HSSFCell csCell =row.createCell((short)5);csCell.setEncoding(HSSFCell.ENCODING_UTF_16);//设置cell编码解决中文高位字节截断csCell.setCellValue("中文测试_Chinese Words Test");//设置中西文结合字符串row.createCell((short)6).setCellType(HSSFCell.CELL_TYPE_ERROR);//建立错误cell// Write the output to a fileFileOutputStream fileOut = new FileOutputStream("workbook.xls");wb.write(fileOut);fileOut.close();}}从以上例子,可以清楚的看到xls文件从大到小包扩了 HSSFWorkbook HSSFSheet HSSFRow HSSFCell这样几个对象。还可以在cell中设置各种类型的值。尤其要注意的是如果你想正确的显示非欧美的字符时,尤其象中日韩这样的语言,必须 设置编码为16位的即是HSSFCell.ENCODING_UTF_16,才能保证字符的高8位不被截断而引起编码失真形成乱码。 其他测试可以通过参考examples包中的测试例子掌握poi的详细用法,包括字体的设置,cell大小和低纹的设置等。需要注意的是POI是一 个仍然在完善中的公开代码的项目,所以有些功能正在不断的扩充。如HSSFSheet的getFooter() getHeader()和 setFooter(HSSFFooter hsf) setHeader(HSSFHeader hsh)是在POI1.7中才有的,而POI1.5中就没有。运行测试熟悉代码或者使用它做项目时请注意POI的版本。 另外需要注意的是HSSF也有它的对xls基于事件的解析。可以参考例程中的EventExample.java。它通过实现 HSSFListener完成从普通流认知Xls中包含的内容,在apache Cocoon中的 org.apache.cocoon.serialization.HSSFSerializer中用到了这个解析。因为Cocoon2 是基于事件的,所以POI为了提供快速的解析也提供了相应的事件。当然我们自己也可以实现这个事件接口。 因为POI还不是一个足够成熟的项目,所以有必要做进一步的开发和测试。但是它已经为我们用纯java操作ole2对象提供了可能,而且克服了ole对象调用的缺陷,提供了服务器端的Excel解决方案。 利用Java 创建和读取Excel文档 为了保证示例程序的运行,必须安装Java 2 sdk1.4.0 和Jakarta POI,Jakarta POI的Web站点是: http://jakarta.apache.org/poi/示例1将演示如何利用Jakarta POI API 创建Excel 文档。 示例1程序如下:import org.apache.poi.hssf.usermodel.HSSFWorkbook;import org.apache.poi.hssf.usermodel.HSSFSheet;import org.apache.poi.hssf.usermodel.HSSFRow;import org.apache.poi.hssf.usermodel.HSSFCell;import java.io.FileOutputStream;publicclass CreateXL {/** Excel 文件要存放的位置,假定在D盘JTest目录下*/publicstatic String outputFile="D:/JTest/ gongye.xls";publicstaticvoid main(String argv[]){try{// 创建新的Excel 工作簿HSSFWorkbook workbook = new HSSFWorkbook();// 在Excel工作簿中建一工作表,其名为缺省值// 如要新建一名为"效益指标"的工作表,其语句为:// HSSFSheet sheet = workbook.createSheet("效益指标");HSSFSheet sheet = workbook.createSheet();// 在索引0的位置创建行(最顶端的行)HSSFRow row = sheet.createRow((short)0);//在索引0的位置创建单元格(左上端)HSSFCell cell = row.createCell((short) 0);// 定义单元格为字符串类型cell.setCellType(HSSFCell.CELL_TYPE_STRING);// 在单元格中输入一些内容cell.setCellValue("增加值");// 新建一输出文件流FileOutputStream fOut = new FileOutputStream(outputFile);// 把相应的Excel 工作簿存盘workbook.write(fOut);fOut.flush();// 操作结束,关闭文件fOut.close();System.out.println("文件生成…");}catch(Exception e) {System.out.println("已运行 xlCreate() : " + e );}}}这里演示创建和设置字体和单元格的格式,然后再应用这些格式:1、创建字体,设置其为红色、粗体:HSSFFont font = workbook.createFont();font.setColor(HSSFFont.COLOR_RED);font.setBoldweight(HSSFFont.BOLDWEIGHT_BOLD);2、创建格式HSSFCellStyle cellStyle= workbook.createCellStyle();cellStyle.setFont(font);3、应用格式 HSSFCell cell = row.createCell((short) 0);cell.setCellStyle(cellStyle);cell.setCellType(HSSFCell.CELL_TYPE_STRING);cell.setCellValue("标题 ");总之,如本篇文章所演示的一样,Java程序员不必担心Excel工作表中的数据了,利用Jakarta POI API, 就可以轻易的在程序中存取Excel文档。
『肆』 本地EXCEL如何获取服务器上面EXCEL里面的数据
打开dos窗口 win+R 方法一: \服务器地址 昌桐码
『伍』 如何解析网页形式的excel文件
导入网页形式的excel文件的方法:一,把这个网页的数据复制后,粘贴到一个记事本中如:abc.txt这个文件,然后点数据、导入外部数据,选择文件abc.txt,然后会弹出一个窗口,是数据分列的操作窗口,选固定分隔符,下一步,“空格”前打上对勾,下一步,下一步,完成。注意这这样操作以后会有几磨宽数据需要你手工调整,比如:000002,万科A由于成与科间有一个空格,这样分列过程会把他分成两列,这就需要你把“科A”剪切并复制到“万”字后面,然后把原来的那个空格删除,右边格子会自裂游尺动被上来,也就对齐了,其他未对齐的数据调整过程相同。二,复制原数据后,点A1,点编辑,选择性粘贴,html,确定,这样,就可肆高以连同在网页上的格式一起粘贴到对应的单元格中了。这时个,由于EXCEL对数据格式的默认,你还要对B列股票代码列进行调整,在默认状态下,000002直接被写成了2,调整方式是:选中B列,点右键,设置单元格格式,自定义,右边输入000000,确定。
『陆』 php怎么读取excel 文件数据并输出
PHPExcel
PHPExcel是用来操作Office Excel 文档的一个PHP类库,它基于微软的OpenXML标准和PHP语言。可以使用它来读取、写入不同格式的电子表格,如 Excel (BIFF) .xls, Excel 2007 (OfficeOpenXML) .xlsx, CSV, Libre/OpenOffice Calc .ods, Gnumeric, PDF, HTML等等。
PHP读取示例代码
//获取上传的excel临时文件$path=$_FILES["file"]["tmp_name"];//将临时文件移动当前目录,可自定义存储位置move_uploaded_file($_FILES["file"]["tmp_name"],$_FILES["file"]["name"]);//将获取在服务器中的Excel文件,此处为上传文件名$path=$_FILES["file"]["name"];//调用readExcel函数返回一个二维数组$exceArray=readExcel($path);//创建一个读取excel函数functionreadExcel($path){//引入PHPExcel类库include'Classes/PHPExcel.php';include'Classes/PHPExcel/IOFactory.php';$type='Excel5';//设置为Excel5代表支持2003或以下版本,Excel2007代表2007版$xlsReader=PHPExcel_IOFactory::createReader($type);$xlsReader->setReadDataOnly(true);$xlsReader->setLoadSheetsOnly(true);$Sheets=$xlsReader->load($path);//开始读取上传到服务器中的Excel文件,返回一个二维数组$dataArray=$Sheets->getSheet(0)->toArray();return$dataArray;}
『柒』 jsp中 打开服务器上指定的excel文件。
你点击导出也就是从你的服务器上把那个文件下载下来而已1.直接把你的文件在服务器上的路径给客户端点击下载。2.在服务端获取文件,用response使用流输出给客户端。
『捌』 到服务器存取excel文件
可以用第三方控件来完成,例如GCExcel,POI等。就看导入的Excel是否需要界面展示,不需要的话,上述的控件任意一款均能满足需求。如果需要,那推荐使用 GCExcel 和 前端的展示控件 SpreadJS 进行配套展示,GCExcel 用于服务器端读取,修改,存储Excel,SpreadJS用悔隐于前端展示,操作。扰悔两者之间可以通过页面序列化的json格式进行互通(SpreadJS 与 GCExcel 之间可以做到相互转换,POI没有类似功能)。
最后语言的支持:POI后台必须是Java语言,缓前正GCExcel支持Java,.net