精华内容
下载资源
问答
  • 介绍C++Builder中如何把数据库中数据导入Excel以及如何把图表导入到WORD中
  • 实际的开发,我们会经常遇到数据的转化的需要,将Excel中的数据转入到SQL,或将SQL在数据库数据导入Excel中。代码如下: Code public partial class Form1 : Form { private static string _...

    excelsql.jpg

    实际的开发中,我们会经常遇到数据的转化的需要,将Excel中的数据转入到SQL中,或将SQL在数据库表中的数据导入到Excel中。代码如下:

    ContractedBlock.gifExpandedBlockStart.gifCode
    public partial class Form1 : Form
    {
    private static string _filePath = string.Empty;
    public Form1()
    {
    InitializeComponent();
    BindUser();
    }

    /// <summary>
    /// 绑定数据
    /// </summary>
    private void BindUser()
    {
    string sql = "select * from CRMUser";
    DataSet ds
    = DbHelperSQL.Query(sql);
    dataGridView1.DataSource
    = ds.Tables[0];
    }
    /// <summary>
    /// 将Users表中的数据导入Excel中
    /// </summary>
    private void btnSqlToExcel_Click(object sender, EventArgs e)
    {
    ExcelFile excelFile
    = new ExcelFile();
    ExcelWorksheet sheet
    = excelFile.Worksheets.Add("CRMUser");

    int columns = dataGridView1.Columns.Count;
    int rows = dataGridView1.Rows.Count;

    for (int j = 0; j < columns; j++)
    {
    sheet.Cells[
    0, j].Value = dataGridView1.Columns[j].HeaderText;
    }

    for (int i = 1; i < rows; i++)
    {
    for (int j = 0; j < columns; j++)
    {
    sheet.Cells[i, j].Value
    = dataGridView1[j, i - 1].Value.ToString().Trim();
    }
    }

    excelFile.SaveXls(
    "./CRMUser.xls");

    MessageBox.Show(
    "生成成功");
    }
    /// <summary>
    /// 选择要向SQL数据库中导入数据的Excel文件
    /// </summary>
    private void btnChoose_Click_1(object sender, EventArgs e)
    {
    using (OpenFileDialog dialog = new OpenFileDialog())
    {
    dialog.Multiselect
    = true;
    if (dialog.ShowDialog() == DialogResult.OK)
    {
    try
    {
    txtPath.Text
    = dialog.FileName;
    }
    catch { }
    }
    }
    }
    /// <summary>
    /// 将Excel中的数据导入到SQL数据库中
    /// </summary>
    private void btnExcelToSql_Click(object sender, EventArgs e)
    {
    DataSet ds
    = ImportFromExcel(txtPath.Text.Trim());
    DataTable dt
    = ds.Tables[0];
    try
    {
    string strInsertComm;
    for (int i = 0; i < dt.Rows.Count; i++)
    {
    strInsertComm
    = "";
    strInsertComm
    = "Insert INTO TestExcel(ToolName,[Type],brife,Info,WebSite)";
    strInsertComm
    += " values(";
    for (int j = 0; j <dt.Columns.Count; j++)
    {
    if (j > 0)
    {
    strInsertComm
    += ",'" + dt.Rows[i][j].ToString().Trim() + "'";
    }
    else
    {
    strInsertComm
    += "'" + dt.Rows[i][j].ToString().Trim() + "'";
    }
    }
    strInsertComm
    += ")";
    //判断当插入的整条数据都不为空时才执行插入操作,避免插入空数据
    if (strInsertComm != "Insert INTO TestExcel(ToolName,[Type],brife,Info,WebSite) values('','','','','')")
    {
    DbHelperSQL.ExecuteSql(strInsertComm);
    }
    }
    MessageBox.Show(
    "导入成功");
    }
    catch (Exception ex)
    {
    MessageBox.Show(ex.Message);
    }
    }
    #region Excel导入SQL数据库
    /// <summary>
    /// 获取Excel数据表列表
    /// </summary>
    /// <returns></returns>
    public static ArrayList GetExcelTables(string FilePath)
    {
    //将Excel架构存入数据里
    System.Data.DataTable dt = new System.Data.DataTable();
    ArrayList TablesList
    = new ArrayList();

    if (File.Exists(FilePath))
    {
    using (OleDbConnection conn = new OleDbConnection("Provider=Microsoft.Jet." +
    "OLEDB.4.0;Extended Properties=\"Excel 8.0\";Data Source=" + FilePath))
    {
    try
    {
    conn.Open();
    dt
    = conn.GetOleDbSchemaTable(OleDbSchemaGuid.Tables, new object[] { null, null, null, "TABLE" });
    }
    catch (Exception exp)
    {
    MessageBox.Show(exp.Message);
    }

    //获取数据表个数
    int tablecount = dt.Rows.Count;
    for (int i = 0; i < tablecount; i = i + 2)
    {
    string tablename = dt.Rows[i][2].ToString().Trim().TrimEnd('$');
    if (TablesList.IndexOf(tablename) < 0)
    {
    TablesList.Add(tablename);
    }

    }
    }
    }
    return TablesList;
    }

    /// <summary>
    /// 导入Excel数据表至DataTable(第一行作为表头)
    /// </summary>
    /// <returns></returns>
    public static System.Data.DataSet FillDataSet(string FilePath)
    {
    if (!File.Exists(FilePath))
    {
    throw new Exception("Excel文件不存在!");
    }

    ArrayList TableList
    = new ArrayList();
    TableList
    = GetExcelTables(FilePath);
    if (TableList.Count <= 0)
    {
    return null;
    }


    System.Data.DataTable table;
    System.Data.DataSet ds
    = new DataSet();
    OleDbConnection dbcon
    = new OleDbConnection(@"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + FilePath + ";Extended Properties=Excel 8.0");
    try
    {
    if (dbcon.State == ConnectionState.Closed)
    {
    dbcon.Open();
    }
    for (int i = 0; i < TableList.Count; i++)
    {
    string dtname = TableList[i].ToString();
    try
    {
    OleDbCommand cmd
    = new OleDbCommand("select * from [" + dtname + "$]", dbcon);
    OleDbDataAdapter adapter
    = new OleDbDataAdapter(cmd);
    table
    = new DataTable(dtname);
    adapter.Fill(table);
    ds.Tables.Add(table);
    }
    catch (Exception exp)
    {
    MessageBox.Show(exp.Message);
    }
    }
    }
    finally
    {
    if (dbcon.State == ConnectionState.Open)
    {
    dbcon.Close();
    }
    }
    return ds;
    }

    /// <summary>
    /// Excel导入数据库
    /// </summary>
    /// <returns></returns>
    public static DataSet ImportFromExcel(string FilePath)
    {
    return FillDataSet(FilePath);
    }

    #endregion
    }

    数据从SQL到Excel中利用了GemBox.ExcelLite.dll,网上可以下载。
    代码很简单,希望大家有什么更好的方法,分享出来啊!有的时候可能需要对导入导出的数据加密,只需要定义一个加密函数,依次的对数据加密就ok了。
     

    转载于:https://www.cnblogs.com/niezy/archive/2011/09/20/2182156.html

    展开全文
  • 上传导入excel文件中的数据数据库中 前端导出页面:export.html 访问地址:http://localhost:8082/toExport 文件导出下载 下载导出数据库中数据excel文件中 我小白一枚,写这个东东也踩了很多坑,...
  • 问题:当Excel 中的数据信息相当大时或者是当从数据库中查询出来的结果集很大时这种情况如何处理? 思考:由于内存有限,面对的又是大数据集,只有将原有的数据集进行分段处理  对于数据库中数据导出到Excel中 ...

    前提:1)该应用部署在本地

                2)内存有限 即一次性加载不了所有的数据

    问题:当Excel 中的数据信息相当大时或者是当从数据库中查询出来的结果集很大时这种情况如何处理?

    思考:由于内存有限,面对的又是大数据集,只有将原有的数据集进行分段处理

         对于数据库中的数据导出到Excel中

       

    			//1.创建一个工作表单
    			wwb = ExportExcel.createWorkBokk("XXXX",response);
    			String[] array = null;//表头属性数组
    			int size = 1,index=0,sheet_index=0,head_index;
    			Label label = null;//填写excel表头
    			WritableSheet ws = null;
    			while(true)//开启大数据分段读取方案
    			{
    				//通过数据库查询语句设定获取数据结果集的长度信息
    				if(sheet_index<=0||index>60000)
    				{
    					index = 0;//重置 列游标
    					ws = wwb.createSheet("sheet"+sheet_index, sheet_index);  //创建sheet
    					//添加表头数据
    					sheet_index++;
    					index = 1;//重置 行游标
    				}
    				
    			       //数据填充
    				size ++;//分页查询数据
    				if(this.isbreak||size>25)break;
    			}
    			wwb.write();
    			wwb.close();
    		


     

         对于Excel数据导入到数据库中通过行控制来加载数据信息,示例代码如下:

    
    <pre class="java" name="code"><pre class="java" name="code">Workbook wb = Workbook.getWorkbook(file.getInputStream());
    		Sheet sheet = wb.getSheet(0);
    		//设定行数              
    		int  num =  200;		               		
    		for(int i=0;i<sheet.getRows();i++)
    		{
    			//行数据处理			
    			if(i!=0 && i%num ==0)   //控制数据分段加载			
    			{				
    			    //做数据处理,例如插入到数据库,将原来的结果集清空,继续加载数据                                                
    			}		
    		}
    
     
    
    
    
    
    展开全文
  • Excel数据导入数据库 可以加导入的进度,这先不加。且不涉及其他导入逻辑问题,只是简单导入。 后端代码: namespace SnAbp.StdBa.Dtos.Import { public class ImportData { public FileUploadDto File { get; ...

    Excel数据导入数据库

    可以加导入的进度,在这先不加。且不涉及其他导入逻辑问题,只是简单导入。

    后端代码:

    namespace SnAbp.StdBa.Dtos.Import
    {
        public class ImportData
        {
            public FileUploadDto File { get; set; }
    
            public string ImportKey { get; set; }
        }
    }
    
    //下面是实现接口的文件,和上面不在同一个文件夹下
    public async Task Import([FromForm] ImportData input)
            {
                var rowIndex = 2;  //有效数据的起始索引,看自己的文件而定,Excel行数索引是从0开始的
                ISheet sheet = null;
                IWorkbook workbook = null;
                List<ProductCategoryTemplate> datalist = null;
                // 获取excel表格,判断报个是否满足模板
                try
                {
                    workbook = input.File.ConvertToWorkbook();
                    //ProductTemplate是 需要和导入文件的列相对应的实体类。我的别的导入导出也有类似的类。后面粘出。
                    sheet = workbook.GetSheetAt(0).CheckColumnAccordTempleModel<ProductTemplate>(rowIndex);
                    datalist = sheet
                        .TryTransToList<ProductCategoryTemplate>(rowIndex)
                        .CheckNull();
                }
                catch (Exception)
                {
                    throw new UserFriendlyException("所选文件有错误,请重新选择");
                }
    
                // 定义错误信息列,当某一行数据有误时,添加其异常信息到表的最后一列。
                List<WrongInfo> wrongInfos = new List<WrongInfo>();
                Product hasProductModel;
                if (datalist.Any())
                {
                    foreach (var item in datalist)
                    {
                            await _fileImport.UpdateState(input.ImportKey, updateIndex);
                            var canInsert = true;
                            var newInfo = new WrongInfo(item.Index);
                            
                            if (item.Code.IsNullOrEmpty())
                            {
                                canInsert = false;
                                newInfo.AppendInfo($"Code为空");
                            }
                            if (item.Name.IsNullOrEmpty())
                            {
                                canInsert = false;
                                newInfo.AppendInfo($"Name为空");
                            }
                            if (!canInsert)
                            {
                                wrongInfos.Add(newInfo);
                                continue;
                            }
                            
                            using (_dataFilter.Disable<ISoftDelete>())
                            {
                            //_repositoryProduct为注入进来的仓储
                            // 包在此using中,可以查询到被软删除的数据,
                                hasProductModel = _repositoryProduct.FirstOrDefault(a => a.Code == item.Code);
                            }
                            if (hasProductModel != null)
                            {
                                newInfo.AppendInfo($"{item.Code}已存在,且已更新");
                                hasProductModel.Name = item.Name;
                                hasProductModel.IsDeleted = false;
                                ...;
                                await _repositoryProduct.UpdateAsync(hasProductModel);
                                wrongInfos.Add(newInfo);
                            }
                            else
                            {   // 若数据库没有此数据,就添加。_guidGenerator是guid的仓储,尽量用_guidGenerator.Create()方法来创建Id。
                                hasProductModel = new ProductCategory(_guidGenerator.Create());
                                hasProductModel.Name = item.Name;
    							...;
    							
                                await _repositoryProduct.InsertAsync(hasProductModel);
                            }
                    }
    
                    if (wrongInfos.Any())  //若存在异常信息,就下载导入的文件。
                    {
                        sheet.CreateInfoColumn(wrongInfos);
                        await _fileImport.SaveExceptionFile(CurrentUser.Id.GetValueOrDefault(), input.ImportKey, workbook.ConvertToBytes());
                    }
                }
            }
          
    
    
    
    用到的一些工具类方法:工具或公共项目中写好的方法,在这用到的。
      
    public class FileUploadDto
        {
            public FileUploadDto();
    
            public IFormFile File { get; set; }
        }
        
    
    public static IWorkbook ConvertToWorkbook(this FileUploadDto fileDto)
            {
                try
                {
                    var stream = fileDto.ReadFileStream().CheckNull();
                    var fileName = fileDto.File.FileName;
                    return ExcelHelper.ExcelHelper.GetWorkbookByStream(stream, fileName);
                }
                catch (Exception e)
                {
                    throw new ArgumentNullException(paramName: nameof(ConvertToWorkbook), "文件流为空");
                }
            }
    
    public static ISheet CheckColumnAccordTempleModel<T>(this ISheet sheet,int validDataIndex=0)
            {
                if(sheet==null) throw new ArgumentNullException(paramName: nameof(CheckColumnAccordTempleModel), "工作表为空");
                var cellCount = sheet.GetRow(validDataIndex).PhysicalNumberOfCells;
                var properties = typeof(T).GetProperties();
                
                // 逻辑优化,如果实体包含扩展内容,则不需要再判断
                if(properties.Any(a=>a.Name== "Properties"))
                {
                    return sheet;
                }
                else
                {
                    var modelPropsCount = typeof(T).GetProperties().Length;
                    return cellCount == modelPropsCount ? sheet : throw new ArgumentNullException(paramName: nameof(CheckColumnAccordTempleModel), "导入文件与对应的模板不符,请检查");
                };
            }
    
    
     public static List<T> TryTransToList<T>(this ISheet sheet, int rowIndex = 0) where T : class,new()
            {
                try
                {
                    return ExcelHelper.ExcelHelper.SheetToList<T>(sheet, rowIndex);
                }
                catch (Exception e)
                {
                    throw new ArgumentNullException(paramName: nameof(TryTransToList), "数据转换异常,请检查源文件");
                }
            }
    
    
    public static List<T> CheckNull<T>(this List<T> list)=>
                list ?? throw new ArgumentNullException(paramName: nameof(CheckNull), "未将对象实例化");
    
    
    public static void CreateInfoColumn(this ISheet sheet, List<WrongInfo> infos,string title="异常信息")
            {
                if (sheet != null)
                {
                    ExcelHelper.ExcelHelper.AddInfoColumn(sheet, infos, title);
                }
            };
    
    
    public static byte[] ConvertToBytes(this IWorkbook workbook)
            {
                try
                {
                    var stream = new MemoryStream();
                    workbook.Write(stream);
                    return stream.ToArray();
                }
                catch (Exception ex)
                {
                    return new byte[0]{};
                }
            };
    
       
    public async Task SaveExceptionFile(Guid useId, string key, byte[] fileBytes)
            {
                var importKey = $"{useId}{key}";
                var cache = await _streamCache.GetAsync(importKey);
                if (cache != null)
                {
                    cache.FileBytes = fileBytes;
                }
                else
                {
                    var dto = new FileCacheModal() { FileBytes = fileBytes };
                    await _streamCache.SetAsync(importKey, dto);
                }
            }
            
            //基本是从上导下需要用到的工具类方法。应该可以写到本项目里。
    
    

    前端代码:

    <!--文件导入公共组件-->
    import './style/index.js';
    
    export default {
      name: 'SmImport',
      components: {},
      props: {
        axios: { type: Function, default: () => null },
        importKey: { type: String, default: '' }, // 导入查询的唯一key 为了在后台查询正在导入的数据。
        downloadErrorFile: { type: Boolean, default: false }, // 是否下载导入错误后的文件。
        url: { type: String, default: '' }, // 文件导入地址
        isImport: { type: Boolean, default: false },  //是否可以导入
      },
      data() {
        return {
          isComplete: true, //是否完成
          canImport: true, // 是否可以导入
          directory: '', // 选择的文件夹路径
          accept: '.xls,.xlsx',
          file: null,
          key: null,
          fileName: '',
          fileType: '',
        };
      },
      computed: {
        complete() {
          return this.isComplete;
        },
        import() {
          return this.canImport;
        },
        calculationProgress() {
          return this.progress;
        },
        btnType() {
          return this.import ? this.btnDefaultType : this.btnBussinessType;
        },
        importFiles() {
          return [this.file];
        },
      },
      watch: {
      },
      created() {
        this.initAxios();
      },
      methods: {
        initAxios() {
          fileImpport = new ApiFileImport(this.axios);
        },
        filesSelected(files) {
          this.file = files[0];
          // 开始改变状态
          this.canImport = false;
          this.isComplete = false;
          this.fileName = this.file.name;
          this.fileType = this.file.type;
          this.$emit('selected', this.file);
        },
        
        // 下载文件
        async download() {
          if (this.fileType != "application/vnd.ms-excel") {
            this.fileType = "application/vnd.ms-excel";
          }
          let response = await fileImpport.download(this.importKey);
          if (response != null && requestIsSuccess(response)) {
            if (response.data.byteLength != 0)
              FileSaver.saveAs(new Blob([response.data], { type: this.fileType }), `${this.fileName}`);
          }
        },
        // 执行方法
        async exect(data) {
          // 改造data
          const formData = new FormData();
          let keys = Object.keys(data);
          keys.forEach(a => {
            formData.set(a, data[a]);
          });
          return await this.axios({
            url: this.url,
            method: 'post',
            data: formData,
          });
        },
      },
      render() {
        let fileInput = (
          <input
            style="display:none;"
            type="file"
            ref="fileInput"
            onChange={event => {
              this.filesSelected(event.target.files);
              this.$refs.fileInput.value = '';
            }}
            name="file"
            multiple={this.multiple}
            webkitdirectory={false}
            accept={this.accept}
          ></input>
        );
    
        return (
          <div class="sm-import">
            <a-button
              disabled={this.isImport}
              type="primary"
              icon="import"
              onClick={() => {
                if (this.canImport) {
                  this.$refs.fileInput.click();
                }
              }}
            >
    		数据导入
              {fileInput}
            </a-button>
          </div>
        );
      },
    };
    
    
    
    在前端页面调用导入组件:
    import SmImport from '../../..';
    
    method: {
    async fileSelected(file) {
          // 构造导入参数(根据自己后台方法的实际参数进行构造)
          let importParamter = {
            'file.file': file, 
            'importKey': 'manufacturers',
          };
          // 执行文件上传    
          await this.$refs.smImport.exect(importParamter);
        },
    };
    
    
    <SmImport
          ref="smImport"
          url='api/app/stdBasicManufacture/upload'
          axios={this.axios}
          downloadErrorFile={true}
          importKey="manufacturers"
          onSelected={file => this.fileSelected(file)}
    />
    
    展开全文
  • (www.aimeiba.org/blog韩威编辑)看之前,需要准备jxl.jar, mysql 的驱动包, log4j的jar包  sql.properties 将此文件放入src目录下   select.excel=select * from employe

    www.aimeiba.org/blog韩威编辑)在看之前,需要准备jxl.jar,   mysql 的驱动包, log4j的jar包 

    sql.properties  将此文件放入src目录下

     

    select.excel=select * from employee   是sql.properties文件中的内容

     

    开始正文

     

    index.jsp

     

    <%@ page language="java" import="java.util.*,com.han.service.*,java.io.*,jxl.format.*,jxl.write.*,jxl.*,com.han.entity.*" pageEncoding="gbk"%>
    <%
    response.setContentType("text/html");
      response.setCharacterEncoding("utf-8");
      List list =ImportExcel.getList("select.excel"); //从数据库得到数据
      OutputStream os = response.getOutputStream();//取出输出流
      response.reset(); //空输出流
      response.setHeader("Content-disposition","attachment; filename=fine.xls");//设定输出文件头
      response.setContentType("application/msexcel");//定义输出类型
      WritableWorkbook wbook = Workbook.createWorkbook(os);//建立excel文件
      String title="报表";
      WritableSheet  wsheet =wbook.createSheet(title,0) ;//sheet名称
      //设置excel标题
      WritableFont font = new WritableFont(WritableFont.ARIAL, 16,WritableFont.BOLD,
                    false,UnderlineStyle.NO_UNDERLINE,jxl.write.Colour.BLACK);
      WritableCellFormat wcfFC = new WritableCellFormat(font);
      try {
       wcfFC.setBackground(jxl.write.Colour.AQUA);
       wsheet.addCell(new Label(1,0,title,wcfFC));
       font = new
       WritableFont(WritableFont.ARIAL,14,WritableFont.BOLD,false,UnderlineStyle.NO_UNDERLINE,jxl.write.Colour.BLACK);
       wcfFC = new WritableCellFormat(font);
       //开始生成主体内容
       String sheetTitle[] = new String[]{"员工编号","员工姓名","员工所在部门","员工性别","员工职位"};
       for(int j=0;j<sheetTitle.length;j++){
        wsheet.addCell(new Label(j,0,sheetTitle[j]));
       }
       for(int i=0;i<list.size();i++){
        Employee employee = (Employee)list.get(i);
        wsheet.addCell(new Label(0,i+1,employee.getEmployeeId()+""));//员工编号
        wsheet.addCell(new Label(1,i+1,employee.getEmployeeName()));//员工姓名
        wsheet.addCell(new Label(2,i+1,employee.getEmployeeDepartment()));//员工所在部门
        wsheet.addCell(new Label(3,i+1,employee.getEmployeeSex()));//员工性别
        wsheet.addCell(new Label(4,i+1,employee.getEmployeePosition()));//员工职位
       }
       wbook.write();//写入文件
      
       wbook.close();
       os.flush();
       out.clear();
       out=pageContext.pushBody();
       os.close();//关闭流
      } catch (WriteException e) {
       // TODO Auto-generated catch block
       e.printStackTrace();
      }
      
      
    %>

     

     

    ImportExcel.java   获取数据库数据的类

    package com.han.service;

    import java.sql.Connection;
    import java.sql.ResultSet;
    import java.sql.SQLException;
    import java.sql.Statement;
    import java.util.ArrayList;
    import java.util.List;

    import com.han.dao.DaoSupport;
    import com.han.dao.help.Helper;
    import com.han.entity.Employee;

    public class ImportExcel {
     /***
      * 获得employee数据
      * @param key
      * @return
      */
      public  static List getList(String key){
       List list = new ArrayList();
       String sql=Helper.getInstance().getSqlCode(key);
       Connection con = DaoSupport.getcon();
       Statement st;
     try {
      st = con.createStatement();
       ResultSet rs= st.executeQuery(sql);
       while(rs.next()){
        Employee employee = new Employee();
        employee.setEmployeeId(rs.getInt(1));
        employee.setEmployeeName(rs.getString(2));
        employee.setEmployeePosition(rs.getString(3));
        employee.setEmployeeSex(rs.getString(4));
        employee.setEmployeeDepartment(rs.getString(5));
        list.add(employee);
       }
     } catch (SQLException e) {
      // TODO Auto-generated catch block
      e.printStackTrace();
     }
       return list;
      }
    }

     Employee.java

      员工实体类

    package com.han.entity;

    public class Employee {
     private int employeeId;
     private String employeeName;
     private String employeePosition;
     private String employeeSex;
     private String employeeDepartment;
     public String getEmployeeDepartment() {
      return employeeDepartment;
     }
     public void setEmployeeDepartment(String employeeDepartment) {
      this.employeeDepartment = employeeDepartment;
     }
     public int getEmployeeId() {
      return employeeId;
     }
     public void setEmployeeId(int employeeId) {
      this.employeeId = employeeId;
     }
     public String getEmployeeName() {
      return employeeName;
     }
     public void setEmployeeName(String employeeName) {
      this.employeeName = employeeName;
     }
     public String getEmployeePosition() {
      return employeePosition;
     }
     public void setEmployeePosition(String employeePosition) {
      this.employeePosition = employeePosition;
     }
     public String getEmployeeSex() {
      return employeeSex;
     }
     public void setEmployeeSex(String employeeSex) {
      this.employeeSex = employeeSex;
     }

    }

     


    Helper.java

      是一个本人用单利写的一个工具类

    package com.han.dao.help;

    import java.io.IOException;
    import java.util.Properties;

    import org.apache.log4j.Logger;

    import com.han.exception.DataAccessException;
    import com.han.util.StringUtil;

    /****
     * 通过此类从sql.properties文件中sql语句
     * @author Administrator
     *
     */
    public class Helper {
     private Logger log = Logger.getLogger(Helper.class);
     private String  sqlFile="sql.properties";
     private Properties sqlproperties = new Properties();
     private static Helper  helper = new Helper();
     private Helper(){
      try {
       sqlproperties.load(this.getClass().getClassLoader().getResourceAsStream(sqlFile));
      } catch (IOException e) {
       // TODO Auto-generated catch block
       e.printStackTrace();
      }
     }
     public static Helper getInstance(){
      return helper;
     }
     
     /**
      * 通过key获得sql语句
      * @param key
      * @return调用此方法获得sql语句
      */
     public String getSqlCode(String key){
      String sqlString =null;
      try {
       
       sqlString = getSql(key);
      } catch (DataAccessException e) {
       // TODO Auto-generated catch block
       e.printStackTrace();
      }
      return sqlString;
      
     }
     /***
      * 通过键值在sql.properties文件中读取sql语句
      * @param key
      * @return
      * @throws DataAccessException
      */
     public String getSql(String key) throws DataAccessException{
      if(sqlproperties.containsKey(key)){
       String sqlString = StringUtil.getGBKStr(sqlproperties.getProperty(key).toString());
       //sqlString = sqlString.replace("%20", " ");// 如果你的文件路径中包含空格,是必定会报错的
       return sqlString;
      }else{
       log.fatal((new StringBuffer("faild  to get sql code"))
         .append(key).append("at").append(sqlFile).toString());
       throw new DataAccessException((new StringBuffer("faild to get sql code"))
         .append(key).append("at").append(sqlFile).toString());
      }
     }
     
    }

    StringUtil.java 是一个处理中文字符的类

    package com.han.util;

    import java.io.UnsupportedEncodingException;
    import java.util.regex.Matcher;
    import java.util.regex.Pattern;

    public class StringUtil {

     /***
      * 中文处理
      * @param str
      * @return
      */
     public static String getGBKStr(String str){
      if(str == null && str.length()<0){
       return ""; 
      }
      try {
       byte[] strbytes = str.getBytes("ISO8859-1");
       String strGBK = new String(strbytes,"gbk");
       return strGBK;
      } catch (UnsupportedEncodingException e) {
       // TODO Auto-generated catch block
       e.printStackTrace();
      }
      return "";
     }
     //构造sql语句
     public static String constructSql(String getSqlCode,String[] params){
      String key="//?";
      Pattern p  = Pattern.compile(key);
      Matcher m = p.matcher(getSqlCode);
      StringBuffer sb = new StringBuffer();
      int i=0;
      boolean result = m.find();
      while(result){
       m.appendReplacement(sb, params[i]);
       result = m.find();
       i++;
       
      }
      return String.valueOf(m.appendTail(sb));
     }
    }

     

    DataAccessException.java

     自定义的一个异常类

    package com.han.exception;

    /***
     * 数据访问异常类
     * @author Administrator
     *
     */
    public class DataAccessException extends Exception {

     public DataAccessException(){
      super();
     }
     public DataAccessException(String message,Throwable cause){
      super(message,cause);
     }
     public DataAccessException(String message){
      super(message);
     }
     public DataAccessException(Throwable cause){
      super(cause);
     }
    }

    DaoSupport.java 也是一个工具类,连接数据库的

    package com.han.dao;
    import java.sql.*;

    import com.han.service.ImportExcel;
    public class DaoSupport {
     private static final String DRIVER_URL = "jdbc:mysql://127.0.0.1:3306/employee?characterEncoding=utf-8";
     private static final String USER_NAME = "root";
     private static final String PASSWORD = "root";
     private static Connection conn;
     
     
     static{
      try {
       Class.forName("com.mysql.jdbc.Driver");
       
      } catch (ClassNotFoundException e) {
       // TODO Auto-generated catch block
       e.printStackTrace();
      }
     }
     /**
      *
      * @return
      */
     public static Connection getcon(){
      try {
       conn =DriverManager.getConnection(DRIVER_URL,USER_NAME,PASSWORD);
      } catch (SQLException e) {
       // TODO Auto-generated catch block
       e.printStackTrace();
      }
      return conn;
     }
     public  static void main(String args[]){
      
      System.out.println(ImportExcel.getList("select.excel").size());
     }
    }


    基本上已经完毕,希望能帮到各位

     

    我的百度博客地址: http://hi.baidu.com/554768191/

     

    展开全文
  • 在excel表菜单中选则数据–>导入数据,如图: 选则高级–>选择数据源,如图: 出现数据链接属性,选择for SqlServer,如图: 点击下一步,进入连接,输入服务器地址–>填写账号–>选择数据库–>进行...
  • 关于DWZ中将数据库中数据导入Excel

    千次阅读 2013-07-23 22:27:39
    最近做基于DWZ框架的项目,碰到的数据导入导出的问题,现在问题解决了,源码如下 //前台代码 此处必须注意: form表单的这些代码必须删除! 请选择考试名称: divider 请选择科目: ...
  • 其实将数据内容导入数据库可以可视化界面上直接操作,方便快捷,但是介于工作得原因,需要每天定时入库啥得,这时程序得方便性就可以体现出来了。 假设我们要长成这个样子的excel数据的内容导入MySQL...
  • Posted on 2010-03-31 15:39 Cloud kensin 阅读(132) 评论(0) 编辑 收藏 所属分类: Java 从数据库中读取数据导入excel中,如果数据量小,的确很简单,直接用POI输出就OK了,可是我这边有>6W的数据要输出,...
  • 数据库中读取数据导入excel中,如果数据量小,的确很简单,直接用POI输出就OK了,可是我这边有>6W的数据要输出,java运行了直接溢出了,于是前辈给了个取巧的办法,调用java命令并设置vm参数-Xms1024M -Xmx1024...
  • SQL SERVER 和EXCEL数据导入导出 1、SQL SERVER里查询Excel数据: -- ====================================================== SELECT *  FROM OpenDataSource( 'Microsoft.Jet.OLEDB.4.0', 'Data Source=...
  • 如何在数据库中轻松导入excel格式的文件 1)打开sql server,找到要导入数据的数据库,右键>>任务>>导入数据 2)按照图示选择要导入excel 3)选择导入到哪个数据库 4)导入...
  • 网络上的数据怎么导到excel中。...而导进来的直接是数据,能进行下一步编辑计算的1、打开excel“菜单”栏,找到“数据”,选择“导入外部数据”,然后选择“新建web查询”2、然后会弹出“新建web查...
  • 现在我想把用户zkj下的所有表数据导出到excel中保存下来以方便查阅或者形成报表【环境为oracle10g】 步骤如下:  1,数据zkj下的表情况如下 2,用户zkj下执行以下sql语句 set linesize 120 ...
  • <p>I'm working on a project where I need to import Excel data to my Symfony database. But the problem is that I don't know how to do that. I tried with ExcelBundle. The project is: User has to use a ...
  • 日常的项目中,Excel,Word,txt等格式的数据导入数据库中是很常见的,我这里做一下总结 这里将分为Asp.net导入Sql Server,Oracle数据库和WinForm导入Sql Server,Oracle数据库。   C#数据库数据导入导出...
  • 用Java导入excel文件,将数据存放在数据库中导入文件多次,Java如何处理文件多次导入问题?
  • 1)打开你的sql server,找到要导入数据数据库,右键——〉任务——〉导入数据 2)按照图示选择要导入excel 3)选择导入到哪个数据库

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 3,731
精华内容 1,492
关键字:

数据库中数据导入在excel