java poi实现excel导入导出
所用的是poi jar
Java数据导入Excel
package com.bossy.base;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
import jxl.Workbook;
import jxl.format.UnderlineStyle;
import https://www.360docs.net/doc/cb2298764.html,bel;
import jxl.write.WritableFont;
import jxl.write.WritableSheet;
import jxl.write.WritableWorkbook;
import jxl.write.WriteException;
import jxl.write.biff.RowsExceededException; import https://www.360docs.net/doc/cb2298764.html,ermodel.HSSFCell; import https://www.360docs.net/doc/cb2298764.html,ermodel.HSSFCellStyle; import https://www.360docs.net/doc/cb2298764.html,ermodel.HSSFRow; import https://www.360docs.net/doc/cb2298764.html,ermodel.HSSFSheet;
import https://www.360docs.net/doc/cb2298764.html,ermodel.HSSFWorkbook;
import org.apache.poi.poifs.filesystem.POIFSFileSystem;
public class ExcelOpt{
/**
*生成一个Excel文件jxl
*@param fileName要生成的Excel文件名
*@jxl.jar版本:2.6
*/
public static void writeExcel(String fileName){
WritableWorkbook wwb=null;
try{
//首先要使用Workbook类的工厂方法创建一个可写入的工作薄(Workbook)对象
wwb=Workbook.createWorkbook(new File(fileName));
}catch(IOException e){
e.printStackTrace();
}
if(wwb!=null){
//创建一个可写入的工作表
//Workbook的createSheet方法有两个参数,第一个是工作表的名称,第二个是工作表在工作薄中的位置WritableSheet ws=wwb.createSheet("工作表名称",0);
//下面开始添加单元格
for(int i=0;i<10;i++){
for(int j=0;j<5;j++){
//这里需要注意的是,在Excel中,第一个参数表示列,第二个表示行
Label labelC=new Label(j,i,"这是第"+(i+1)+"行,第"+(j+1)+"列");
try{
//将生成的单元格添加到工作表中
ws.addCell(labelC);
}catch(RowsExceededException e){
e.printStackTrace();
}catch(WriteException e){
e.printStackTrace();
}
}
}
try{
//从内存中写入文件中
wwb.write();
//关闭资源,释放内存
wwb.close();
}catch(IOException e){
e.printStackTrace();
}catch(WriteException e){
e.printStackTrace();
}
}
}
/**
*生成一个Excel文件POI
*@param inputFile输入模板文件路径
*@param outputFile输入文件存放于服务器路径
*@param dataList待导出数据
*@throws Exception
*@roseuid:
*/
public static void exportExcelFile(String inputFile,String outputFile,List dataList)throws Exception{ //用模板文件构造poi
POIFSFileSystem fs=new POIFSFileSystem(new FileInputStream(inputFile));
//创建模板工作表
HSSFWorkbook templatewb=new HSSFWorkbook(fs);
//直接取模板第一个sheet对象
HSSFSheet templateSheet=templatewb.getSheetAt(1);
//得到模板的第一个sheet的第一行对象为了得到模板样式
HSSFRow templateRow=templateSheet.getRow(0);
//HSSFSheet timplateSheet=templatewb.getSheetAt(1);
//取得Excel文件的总列数
int columns=templateSheet.getRow((short)0)
.getPhysicalNumberOfCells();
//Debug.println("columns is:"+columns);//=========================
//创建样式数组
HSSFCellStyle styleArray[]=new HSSFCellStyle[columns];
//一次性创建所有列的样式放在数组里
for(int s=0;s //得到数组实例 styleArray[s]=templatewb.createCellStyle(); } //循环对每一个单元格进行赋值 //定位行 for(int rowId=1;rowId //依次取第rowId行数据每一个数据是valueList List valueList=(List)dataList.get(rowId-1); //定位列 for(int columnId=0;columnId //依次取出对应与colunmId列的值 //每一个单元格的值 String dataValue=(String)valueList.get(columnId); //取出colunmId列的的style //模板每一列的样式 HSSFCellStyle style=styleArray[columnId]; //取模板第colunmId列的单元格对象 //模板单元格对象 HSSFCell templateCell=templateRow.getCell((short)columnId); //创建一个新的rowId行行对象 //新建的行对象 HSSFRow hssfRow=templateSheet.createRow(rowId); //创建新的rowId行columnId列单元格对象 //新建的单元格对象 HSSFCell cell=hssfRow.createCell((short)columnId); //如果对应的模板单元格样式为非锁定 if(templateCell.getCellStyle().getLocked()==false){ //设置此列style为非锁定 style.setLocked(false); //设置到新的单元格上 cell.setCellStyle(style); } //否则样式为锁定 else{ //设置此列style为锁定 style.setLocked(true); //设置到新单元格上 cell.setCellStyle(style); } //设置编码 cell.setEncoding(HSSFCell.ENCODING_UTF_16); //Debug.println("dataValue:"+dataValue); //设置值统一为String cell.setCellValue(dataValue); } } //设置输入流 FileOutputStream fOut=new FileOutputStream(outputFile); //将模板的内容写到输出文件上 templatewb.write(fOut); fOut.flush(); //操作结束,关闭文件 fOut.close(); } /** *导出数据为XLS格式 *@param fos生成Excel文件Path *@param bo要导入的数据 */ public static void writeExcelBo(String fos,java.util.List ve) { jxl.write.WritableWorkbook wwb; try { wwb=Workbook.createWorkbook(new File(fos)); jxl.write.WritableSheet ws=wwb.createSheet("上市新书",10); ws.addCell(new https://www.360docs.net/doc/cb2298764.html,bel(0,1,"书名")); ws.addCell(new https://www.360docs.net/doc/cb2298764.html,bel(1,1,"作者")); ws.addCell(new https://www.360docs.net/doc/cb2298764.html,bel(2,1,"定价")); ws.addCell(new https://www.360docs.net/doc/cb2298764.html,bel(3,1,"出版社")); int bookSize=ve.size(); BookVO book=new BookVO(); for(int i=0;i { book=(BookVO)ve.get(i); ws.addCell(new https://www.360docs.net/doc/cb2298764.html,bel(0,i+2,""+book.getBookName())); ws.addCell(new https://www.360docs.net/doc/cb2298764.html,bel(1,i+2,book.getBookAuthor())); ws.addCell(new https://www.360docs.net/doc/cb2298764.html,bel(2,i+2,""+book.getBookPrice())); ws.addCell(new https://www.360docs.net/doc/cb2298764.html,bel(3,i+2,book.getBookConcern())); } //jxl.write.WritableFont wfc= //new jxl.write.WritableFont(WritableFont.ARIAL,255,WritableFont.BOLD,false,UnderlineStyle.NO_UNDERLINE,jxl.format.Colour.BLACK); //jxl.write.WritableCellFormat wcfFC=new jxl.write.WritableCellFormat(wfc); ws.addCell(new https://www.360docs.net/doc/cb2298764.html,bel(0,0,"2007年07月即将上市新书!")); wwb.write(); //关闭Excel工作薄对象 wwb.close(); }catch(IOException e){ }catch(RowsExceededException e){ }catch(WriteException e){ } } public static void main(String[]args){ writeExcel("c:\\Test测试Excel.xls"); System.out.println("OK"); ArrayList list=new ArrayList(); for(int i=0;i<10;i++){ BookVO book=new BookVO(); book.setBookName("WebWork in action+"+i); book.setBookAuthor("唐勇+"+i); book.setBookPrice("39元+"+i); book.setBookConcern("飞思科技+"+i); list.add(book); } writeExcelBo("c:\\上市新书.xls",list); System.err.println("Book OK!!!"); } } java如何操作Excel(数据导入导出)(转) jxl.jar,可以到https://www.360docs.net/doc/cb2298764.html,/project/showfiles.php?group_id=79926下载。 一.读取Excel文件内容 java代码 /**读取Excel文件的内容 *@param file待读取的文件 *@return */ public static String readExcel(File file){ StringBuffer sb=new StringBuffer(); Workbook wb=null; try{ //构造Workbook(工作薄)对象 wb=Workbook.getWorkbook(file); }catch(BiffException e){ e.printStackTrace(); }catch(IOException e){ e.printStackTrace(); } if(wb==null) return null; //获得了Workbook对象之后,就可以通过它得到Sheet(工作表)对象了Sheet[]sheet=wb.getSheets(); if(sheet!=null&&sheet.length>0){ //对每个工作表进行循环 for(int i=0;i //得到当前工作表的行数 int rowNum=sheet[i].getRows(); for(int j=0;j //得到当前行的所有单元格 Cell[]cells=sheet[i].getRow(j); if(cells!=null&&cells.length>0){ //对每个单元格进行循环 for(int k=0;k //读取当前单元格的值 String cellValue=cells[k].getContents(); sb.append(cellValue+"\t"); } } sb.append("\r\n"); } sb.append("\r\n"); } } //最后关闭资源,释放内存 wb.close(); return sb.toString(); } 二.写入Excel文件 这里有很多格式了,比如文本内容加粗,加上某些颜色等,可以参考jxl的api. 同时还推荐一篇不错的文章:https://www.360docs.net/doc/cb2298764.html,/developerworks/cn/java/l-javaExcel/?ca=j-t10 java代码 /**生成一个Excel文件 *@param fileName要生成的Excel文件名 */ public static void writeExcel(String fileName){ WritableWorkbook wwb=null; try{ //首先要使用Workbook类的工厂方法创建一个可写入的工作薄(Workbook)对象 wwb=Workbook.createWorkbook(new File(fileName)); }catch(IOException e){ e.printStackTrace(); } if(wwb!=null){ //创建一个可写入的工作表 //Workbook的createSheet方法有两个参数,第一个是工作表的名称,第二个是工作表在工作薄中的位置WritableSheet ws=wwb.createSheet("sheet1",0); //下面开始添加单元格 for(int i=0;i<10;i++){ for(int j=0;j<5;j++){ //这里需要注意的是,在Excel中,第一个参数表示列,第二个表示行 Label labelC=new Label(j,i,"这是第"+(i+1)+"行,第"+(j+1)+"列"); try{ //将生成的单元格添加到工作表中 ws.addCell(labelC); }catch(RowsExceededException e){ e.printStackTrace(); }catch(WriteException e){ e.printStackTrace(); } } } try{ //从内存中写入文件中 wwb.write(); //关闭资源,释放内存 wwb.close(); }catch(IOException e){ e.printStackTrace(); }catch(WriteException e){ e.printStackTrace(); } } } 三.在一个Excel文件中查找是否包含某一个关键字java代码 /**搜索某一个文件中是否包含某个关键字 *@param file待搜索的文件 *@param keyWord要搜索的关键字 *@return */ public static boolean searchKeyWord(File file,String keyWord){ boolean res=false; Workbook wb=null; try{ //构造Workbook(工作薄)对象 wb=Workbook.getWorkbook(file); }catch(BiffException e){ return res; }catch(IOException e){ return res; } if(wb==null) return res; //获得了Workbook对象之后,就可以通过它得到Sheet(工作表)对象了Sheet[]sheet=wb.getSheets(); boolean breakSheet=false; if(sheet!=null&&sheet.length>0){ //对每个工作表进行循环 for(int i=0;i if(breakSheet) break; //得到当前工作表的行数 int rowNum=sheet[i].getRows(); boolean breakRow=false; for(int j=0;j if(breakRow) break; //得到当前行的所有单元格 Cell[]cells=sheet[i].getRow(j); if(cells!=null&&cells.length>0){ boolean breakCell=false; //对每个单元格进行循环 for(int k=0;k if(breakCell) break; //读取当前单元格的值 String cellValue=cells[k].getContents(); if(cellValue==null) continue; if(cellValue.contains(keyWord)){ res=true; breakCell=true; breakRow=true; breakSheet=true; } } } } } } //最后关闭资源,释放内存 wb.close(); return res; } 四.往Excel中插入图片图标 插入图片的实现很容易,参看以下代码:java代码 /**往Excel中插入图片 *@param dataSheet待插入的工作表 *@param col图片从该列开始 *@param row图片从该行开始 *@param width图片所占的列数 *@param height图片所占的行数 *@param imgFile要插入的图片文件 */ public static void insertImg(WritableSheet dataSheet,int col,int row,int width, int height,File imgFile){ WritableImage img=new WritableImage(col,row,width,height,imgFile); dataSheet.addImage(img); } 以上代码的注释已经很清楚了,大概也就不用再解释了,我们可以用如下程序验证:java代码 try{ //创建一个工作薄 WritableWorkbook workbook=Workbook.createWorkbook(new File("D:/test1.xls")); //待插入的工作表 WritableSheet imgSheet=workbook.createSheet("Images",0); //要插入的图片文件 File imgFile=new File("D:/1.png"); //图片插入到第二行第一个单元格,长宽各占六个单元格 insertImg(imgSheet,0,1,6,6,imgFile); workbook.write(); workbook.close(); catch(IOException e){ e.printStackTrace(); catch(WriteException e){ e.printStackTrace(); 但是jxl只支持png格式的图片,jpg格式和gif格式都不支持 ======================================================== jxl.jar包简介/java操作excel jxl.jar下载地址 jxl.jar包简介 下载地址: https://www.360docs.net/doc/cb2298764.html,/jexcelapi/当前的最高版本是2.6。 真实下载地址: https://www.360docs.net/doc/cb2298764.html,/jexcelapi/download.html 作者的网站上对它的特征有如下描述: ●支持Excel95-2000的所有版本 ●生成Excel2000标准格式 ●支持字体、数字、日期操作 ●能够修饰单元格属性 ●支持图像和图表 应该说以上功能已经能够大致满足我们的需要。最关键的是这套API是纯Java的,并不依赖Windows系统,即使运行在Linux下,它同样能够正确的处理Excel文件。另外需要说明的是,这套API对图形和图表的支持很有限,而且仅仅识别PNG格式。 搭建环境 将下载后的文件解包,得到jxl.jar,放入classpath,安装就完成了。 基本操作 一、创建文件 拟生成一个名为“测试数据.xls”的Excel文件,其中第一个工作表被命名为“第一页”,大致效果如下: 代码(CreateXLS.java): //生成Excel的类 import java.io.*; import jxl.*; import jxl.write.*; public class CreateXLS { public static void main(String args[]) { try { //打开文件 WritableWorkbook book= Workbook.createWorkbook(new File(“测试.xls”)); //生成名为“第一页”的工作表,参数0表示这是第一页WritableSheet sheet=book.createSheet(“第一页”,0); //在Label对象的构造子中指名单元格位置是第一列第一行(0,0) //以及单元格内容为test Label label=new Label(0,0,”test”); //将定义好的单元格添加到工作表中 sheet.addCell(label); /*生成一个保存数字的单元格 必须使用Number的完整包路径,否则有语法歧义 单元格位置是第二列,第一行,值为789.123*/ jxl.write.Number number=new jxl.write.Number(1,0,789.123); sheet.addCell(number); //写入数据并关闭文件 book.write(); book.close(); }catch(Exception e) { System.out.println(e); } } } 编译执行后,会在当前位置产生一个Excel文件。 三、读取文件 以刚才我们创建的Excel文件为例,做一个简单的读取操作,程序代码如下://读取Excel的类 import java.io.*; import jxl.*; public class ReadXLS { public static void main(String args[]) { try { Workbook book= Workbook.getWorkbook(new File(“测试.xls”)); //获得第一个工作表对象 Sheet sheet=book.getSheet(0); //得到第一列第一行的单元格 Cell cell1=sheet.getCell(0,0); String result=cell1.getContents(); System.out.println(result); JSP中导入导出Excel文件 一.POI简介 Jakarta POI 是apache的子项目,目标是处理ole2对象。它提供了一组操纵Windows文档的Java API 目前比较成熟的是HSSF接口,处理MS Excel(97-2002)对象。它不象我们仅仅是用csv生成的没有格式的可以由Excel转换的东西,而是真正的Excel 对象,你可以控制一些属性如sheet,cell等等。 二.HSSF概况 HSSF 是sHorrible SpreadSheet Format的缩写,也即“讨厌的电子表格格式”。也许HSSF的名字有点滑稽,就本质而言它是一个非常严肃、正规的API。通过HSSF,你可以用纯Java代码来读取、写入、修改Excel文件。 HSSF 为读取操作提供了两类API:usermodel和eventusermodel,即“用户模型”和“事件-用户模型”。前者很好理解,后者比较抽象,但操作效率要高得多。 三.开始编码 1 .准备工作 要求:JDK 1.4+POI开发包 可以到 https://www.360docs.net/doc/cb2298764.html,/dyn/closer.cgi/jakarta/poi/ 最新的POI工具包 2 . EXCEL 结构 HSSFWorkbook excel 文档对象介绍 HSSFSheet excel的表单 HSSFRow excel的行 HSSFCell excel的格子单元 HSSFFont excel字体 HSSFName 名称 HSSFDataFormat 日期格式 HSSFHeader sheet头 HSSFFooter sheet尾 和这个样式 HSSFCellStyle cell样式 1.package https://www.360docs.net/doc/cb2298764.html,mon.utils; 2.import java.io.OutputStream; 3.import java.util.List; 4.import javax.servlet.http.HttpServletResponse; 5.import org.apache.struts2.ServletActionContext; 6.import https://www.360docs.net/doc/cb2298764.html,ng.reflect.Field; 7. 8.import jxl.Workbook; 9.import jxl.format.Alignment; 10.import jxl.format.Border; 11.import jxl.format.BorderLineStyle; 12.import jxl.format.VerticalAlignment; 13.import https://www.360docs.net/doc/cb2298764.html,bel; 14.import jxl.write.WritableCellFormat; 15.import jxl.write.WritableFont; 16.import jxl.write.WritableSheet; 17.import jxl.write.WritableWorkbook; 18./*** 19. * @author lsf 20. */ 21.public class ExportExcel { 22./*************************************************************************** 23. * @param fileName EXCEL文件名称 24. * @param listTitle EXCEL文件第一行列标题集合 25. * @param listContent EXCEL文件正文数据集合 26. * @return 27. */ 28.public final static String exportExcel(String fileName,String[] Title, List Java实现Excel数据导入导出的研究与应用 王晶晶 北京邮电大学网络教育学院(100088) E-mail:bolalisi_double@https://www.360docs.net/doc/cb2298764.html, 摘要:Excel能够通过功能强大的工具将杂乱的数据组织成有用的信息,然后分析、交流和共享所得到的结果。很多系统由于存在着大量需要处理的数据,Excel本身强大的功能使得它成为处理分析这些数据首选的工具。随着Java语言成为越来越多系统的开发语言,利用Java进行Excel的数据导入导出在很多系统中都发挥着重要的作用,本文主要介绍了Jxl API的主要功能,并结合实例探讨了利用Jxl API操作Excel数据的导入和导出。 关键字:Java;Excel; Jxl API;数据导入导出 中图分类号:TP312文献标识码:A 1. 引言 MS的电子表格(Excel)是Office的重要成员,是保存统计数据的一种常用格式。在一个Java应用中,将一部分数据生成Excel格式,是与其他系统无缝连接的重要手段。在远程网络教学系统中,利用Excel表格统计学生的作业考试情况信息,便于老师了解学生的学习情况,分析教学效果,制定教学计划。所以,用Java操作Excel表格,导出相关的信息对于远程网络教育系统有着的很重要的意义。 在开源世界中,有两套比较有影响的API提供Excel数据导入导出的功能,一个是POI,一个是jExcelAPI。本文结合基于J2EE开发的多媒体教学系统中提供的将学生作业信息导出到Excel表格中的实例,详细阐述了利用JAVA开发的jExcelAPI操作excel的方法。 2. Jxl 简介 2.1 Java语言简介 Java语言具有面向对象、与平台无关、安全、稳定和多线程等优良特性,是目前软件设计中极为强大的编程语言[1]。它具有以下一些特点[2]:简单,面向对象,分布式,解释执行,鲁棒,安全,体系结构中立,可移植,高性能,多线程以及动态性。 2.2什么是Jxl Java Excel是一开放源码项目,通过它Java开发人员可以读取Excel文件的内容、创建新的Excel文件、更新已经存在的Excel文件。使用该 API非Windows操作系统也可以通过纯Java应用来处理Excel数据表。因为是使用Java编写的,所以我们在Web应用中可以通过JSP、 Servlet来调用API实现对Excel数据表的访问。 Jxl发布的稳定版本是V2.0,提供以下功能: 从Excel 95、97、2000等格式的文件中读取数据[3]; 读取Excel公式(可以读取Excel 97以后的公式)[3]; 从sql server中导入/导出excel 的基本方法 /*=========== 导入/导出excel 的基本方法===========*/ 从excel文档中,导入数据到sql数据库中,很简单,直接用下面的语句: /*=============================================*/ --假如接受数据导入的表已存在 insert into 表select * from openrowset(microsoft.jet.oledb.4.0 ,excel 5.0;hdr=yes;database=c:test.xls,sheet1$) --假如导入数据并生成表 select * into 表from openrowset(microsoft.jet.oledb.4.0 ,excel 5.0;hdr=yes;database=c:test.xls,sheet1$) /*===========================================*/ --假如从sql数据库中,导出数据到excel,假如excel文档已存在,而且已按照要接收的数据创建好表头,就能够简单的用: insert into openrowset(microsoft.jet.oledb.4.0 ,excel 5.0;hdr=yes;database=c:test.xls,sheet1$) select * from 表 --假如excel文档不存在,也能够用bcp来导成类excel的文档,注意大小写: --导出表的情况 exec master..xp_cmdshell bcp 数据库名.dbo.表名out "c:test.xls" /c -/s"服务器名" /u"用户名" -p"密码" --导出查询的情况 exec master..xp_cmdshell bcp "select au_fname, au_lname from pubs..authors order by au_lname" queryout "c:test.xls" /c -/s"服务器名" /u"用户名" -p"密码" /*--说明: c:test.xls 为导入/导出的excel文档名. sheet1$ 为excel文档的工作表名,一般要加上$才能正常使用. --*/ --上面已说过,用bcp导出的是类excel文档,其实质为文本文档, --要导出真正的excel文档.就用下面的方法 public void CreateExcel(DataSet ds,string typeid,string FileName) { HttpResponse resp; resp = Page.Response; resp.ContentEncoding = System.Text.Encoding.GetEncoding("GB2312"); resp.AppendHeader("Content-Disposition", "attachment;filename=" + FileName); string colHeaders= "", ls_item=""; int i=0; //定义表对象与行对像,同时用DataSet对其值进行初始化 DataTable dt=ds.Tables[0]; DataRow[] myRow=dt.Select(""); // typeid=="1"时导出为EXCEL格式文件;typeid=="2"时导出为XML格式文件if(typeid=="1") { //取得数据表各列标题,各标题之间以\t分割,最后一个列标题后加回车符for(i=0;i colHeaders+=dt.Columns[i].Caption.ToString()+"\t"; colHeaders +=dt.Columns[i].Caption.ToString() +"\n"; //向HTTP输出流中写入取得的数据信息 resp.Write(colHeaders); //逐行处理数据 foreach(DataRow row in myRow) { //在当前行中,逐列获得数据,数据之间以\t分割,结束时加回车符\n for(i=0;i ls_item +=row[i].ToString() + "\t"; ls_item += row[i].ToString() +"\n"; //当前行数据写入HTTP输出流,并且置空ls_item以便下行数据 resp.Write(ls_item); ls_item=""; } } else { if(typeid=="2") { //从DataSet中直接导出XML数据并且写到HTTP输出流中 resp.Write(ds.GetXml()); } } //写缓冲区中的数据到HTTP头文件中 resp.End(); } using System; using System.Collections.Generic; using https://www.360docs.net/doc/cb2298764.html,ponentModel; using System.Data; using System.Drawing; using System.Text; using System.Windows.Forms; using System.Reflection; using System.IO; namespace ExcelTest { public partial class frmMain : Form { public frmMain() { InitializeComponent(); } string[] ExcelColumTitle ={ "A", "B", "C", "D", "E", "F", "G", "H", "I", "J", "K", "L", "M", "N", "O", "P", "Q", "R", "S", "T", "U", "V", "W", "X", "Y", "Z" }; int[] ExcelColumWidth ={10,15,15,12,12,12,20 };//各列宽度 private void btnOk_Click(object sender, EventArgs e) { this.Enabled = false; Excel.Application excelKccx = new Excel.Application();//创建excel对象 excelKccx.Workbooks.Add(true);//创建excel工作薄 int row = 2; //把数据表的各个信息输入到excel表中 for (int i = 0; i < dataGridView1.Columns.Count; i++)//取字段名 { excelKccx.Cells[1, i + 1] = dataGridView1.Columns[i].Name.ToString(); } for (int i = 0; i < dataGridView1.Rows.Count; i++)//取记录值 { for (int j = 0; j < dataGridView1.Columns.Count; j++) { excelKccx.Cells[row, j + 1] = dataGridView1.Rows[i].Cells[j].Value.ToString(); } row++; } for (int i = 0; i < dataGridView1.Columns.Count; i++) { excelKccx.get_Range(ExcelColumTitle[i]+(i+1), Type.Missing).ColumnWidth =ExcelColumWidth[i] ; //宽度设置 } for (int i = 0; i <= dataGridView1.Rows.Count; i++) { excelKccx.get_Range("A" + (i + 1), Type.Missing).RowHeight = 14.25; //高度设置 } excelKccx.Visible = true;//使excel可见*/ } private void frmMain_Load(object sender, EventArgs e) { List Excel模板数据导入教程 Excel模板数据导入教程 Excel导入模板中的数据既可以直接在我们提供的模板文件中录入,列标题中有红色“(必填)”文字的列必须要填写,其它列根据实际需求可以不填写,换算比率、销售价格、库存数量、成本价这些数字列如果要导入的话,一定是纯数字格式,必须要填写而且不能包括任何汉字或字母。 库存数量与成本价必须是以基本计量单位核算录入,也就是以最小计量单位核算录入。 如果从管家婆、速达等进销存软件中导出到Excel文件,一定要修改导出的Excel文件格式,否则肯定不能正常识别和导入,修改的要求如下: 1、Excel导入模板文件扩展名必须为xls,如果为其它扩展名,必须双击打开模板文件,然后另存为“Excel97-2003工作簿(*.xls)”格式的文件; 2、窗口左下角的工作薄名称必须为“Sheet1”,管家婆或速达导出来的工作薄名称一般为其它名称,必须要修改为Sheet1,请见以下截图; 3、第一行必须为列名,第二行开始必须为要导入的正式数据,请见以下截图; 附上一张标准的导入模板数据截图 本教程只演示怎么导入在我们提供的Excel导入模板中录入的数据,如果从管家婆或速达等进销存软件导出来的数据,导入方式大同小异,只是列名或列的数量不一致而已; 在导入之前一定要关闭要导入的Excel模板文件,否则因为独占模式导致导入时无法识别模板文件中的数据。 产品资料导入 产品资料模板中包括“产品资料基础信息、销售价格、库存记录”3部分内容,需要将同一个产品资料模板文件分3步分别导入,如果有辅助计量单位的销售价格也需要导入,那么需要分4步分别导入。 在导入的模板中如果包括软件中已存在的产品资料记录,一定要在导入窗口将 下拉框选择,这样就不会将相同的记录重复导入到软件中。 第一步:既可以在软件初次使用向导窗口中点击“产品资料导入”按钮,也可以在“基础数据----产品资料”列表窗口点击“Excel导入”菜单,弹出产品资料导入窗口,先选择要导入的Excel模板文件,然后根据要导入的列,按照以下截图设置要导入的列,在第一步中只能导入产品资料的基础数据,销售价格和库存记录在以下步骤中导入。 NC导入导出参考 数据字典: ID userid char pk null 用户编码usercode char null 用户姓名username char null 用户密码password char null 职位名称postname char null 部门vdeptid char null 公司pk_corp char null ---------------------------------------------------------------------------------------------------------------------- UI界面: ---------------------------------------------------------------------------------------------------------------------- 说明:界面中导入导出按钮自己添加,VO自己搞定,本书仅供参考,如有问题自己解决 导出Excel按钮: UserExcelExport export = new UserExcelExport(); // 界面没有数据或者有数据但是没有选中任何行 if (getBufferData().getCurrentVO() == null) return; JFileChooser jfile = new JFileChooser(); jfile.setDialogType(JFileChooser.SA VE_DIALOG); / / 打开文件 if (jfile.showSaveDialog(new UserBillCardUI()) == vax.swing.JFileChooser.CANCEL_OPTION) return; // 文件名 String file = jfile.getSelectedFile().toString(); //返回单据表体当前被选中的VO,如果没有则返回null getBillCardPanelWrapper().getSelectedBodyVOs(); UserVO[] uvos = (UserVO[]) getBillCardPanelWrapper().getSelectedBodyVOs();// export.export(uvos, file);//进行导出操作 import java.io.File; import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.IOException; import java.util.ArrayList; import java.util.List; import jxl.Workbook; import jxl.format.UnderlineStyle; import https://www.360docs.net/doc/cb2298764.html,bel; import jxl.write.WritableFont; import jxl.write.WritableSheet; import jxl.write.WritableWorkbook; import jxl.write.WriteException; import jxl.write.biff.RowsExceededException; import https://www.360docs.net/doc/cb2298764.html,ermodel.HSSFCell; import https://www.360docs.net/doc/cb2298764.html,ermodel.HSSFCellStyle; import https://www.360docs.net/doc/cb2298764.html,ermodel.HSSFRow; import https://www.360docs.net/doc/cb2298764.html,ermodel.HSSFSheet; import https://www.360docs.net/doc/cb2298764.html,ermodel.HSSFWorkbook; import org.apache.poi.poifs.filesystem.POIFSFileSystem; public class ExcelOpt { /** * 生成一个Excel文件jxl * @param fileName 要生成的Excel文件名 * @jxl.jar 版本:2.6 */ public static void writeExcel(String fileName){ WritableWorkbook wwb = null; try { //首先要使用Workbook类的工厂方法创建一个可写入的工作薄(Workbook)对象 wwb = Workbook.createWorkbook(new File(fileName)); } catch (IOException e) { e.printStackTrace(); } if(wwb!=null){ //创建一个可写入的工作表 //Workbook的createSheet方法有两个参数,第一个是工作表的名称,第二个是工作表在工作薄中的位置 DataGirdμ?3?EXCELμ?????·?·¨£¨WebControl£? using System; using System.Data; using System.Text; using System.Web; using System.Web.UI; using System.Diagnostics; using System.Web.UI.WebControls; using System.Web.UI.HtmlControls; using System.Data.SqlClient; using System.Collections; namespace bookstore { /// html导出excel的方法(简单) 在html实现打印和导出excel的实现: 2006/11/05 01:54 P.M. 在所要打印和导如的EXCES的table 加个如 id = "PrintA" 在打印按纽上注册监听如:onclick="javascript:AllAreaWord(); 在加上如下内容:
JSP中导入导出Excel文件
excel导入导出通用方法
Java实现Excel数据导入和导出的研究与应用
从SQL Server中导入导出Excel的基本方法
.NET页面数据导出excel表方法
C# 导出Excel 表
Excel数据导入教程
NC Excel导入导出参考
Java数据导入导出Excel
DataGrid导出EXCEL的几个方法(WebControl)
html导出excel的方法(简单)