导入导出
来源:互联网 发布:centos 清理磁盘空间 编辑:程序博客网 时间:2024/05/22 04:27
浏览
OpenFileDialog ofd = new OpenFileDialog();ofd.Filter = "excel文件|*.xls"; if (ofd.ShowDialog() != System.Windows.Forms.DialogResult.OK) { return; } txtAddress.Text = ofd.FileName;
导入数据按钮代码:
if (!txtAddress.Text.EndsWith(@".xls")) { MessageBox.Show("选择的数据源类型错误,请选择excel文件(.xls类型)"); return; } if (!File.Exists(txtAddress.Text)) { MessageBox.Show("文件不存在,请重新选择文件!"); return; } //执行导入数据操作 using (SqlConnection conn = new SqlConnection(System.Configuration.ConfigurationManager.ConnectionStrings["connStr"].ConnectionString)) { conn.Open(); using (SqlCommand cmd = conn.CreateCommand()) { cmd.CommandText = "insert into T_users(fName,fPassword) values(@name,@password)"; using (FileStream fs = File.OpenRead(txtAddress.Text)) { HSSFWorkbook workbook = new HSSFWorkbook(fs);//根据路径通过已存在的excel来创建HSSFWorkbook,即整个excel文档 ISheet sheet = workbook.GetSheetAt(0);//获得excel中的第一个sheet表格,也可以如以古通过表格“名称”获得相应的sheet,但不如根据序号获得好,因为名称可以修改,对于程序读取来说必须使用默认表格名称 //ISheet sheet = workbook.GetSheet("sheet1"); int count = 0;//计数器 //---------遍历sheet的所有数据行,从第一行到最后一行----------- for (int i = sheet.FirstRowNum; i <= sheet.LastRowNum; i++) { //获得sheet的每一行 IRow row = sheet.GetRow(i); //获得第一行对应的用户名和密码 string cellName = row.GetCell(0).ToString().Trim(); string cellPassword = row.GetCell(1).ToString().Trim(); cmd.Parameters.Clear();//先对参数进行清空 cmd.Parameters.AddWithValue("name", cellName); cmd.Parameters.AddWithValue("password", cellPassword); cmd.ExecuteNonQuery();//这里必须要保证导入数据库字段类型适合数据库字段类型 count++; } MessageBox.Show(count + "条数据导入成功"); Application.Exit();//程序退出 } } }
导出数据按钮代码:
//设定保存地址 SaveFileDialog sfd = new SaveFileDialog(); sfd.Filter = "excel文件|*.xls";//自动保存文件类型 if (sfd.ShowDialog() != System.Windows.Forms.DialogResult.OK) { return;//如果用户没有选择确定,则不进行以后操作 } using (SqlConnection conn = new SqlConnection(System.Configuration.ConfigurationManager.ConnectionStrings["connStr"].ConnectionString)) { conn.Open(); using (SqlCommand cmd = conn.CreateCommand()) { cmd.CommandText = "select * from T_users";//选择所有数据 //创建xls文件 HSSFWorkbook workbook = new HSSFWorkbook(); //创建sheet表单,默认名称为sheet1 ISheet sheet = workbook.CreateSheet("用户数据"); //创建 用户数据 表格的行,并设定第一行的表头 IRow rowTitle = sheet.CreateRow(0); //第1行 第1列为“序号” 第2列为“用户名” 第3列为“密码” rowTitle.CreateCell(0, CellType.STRING).SetCellValue("序号"); rowTitle.CreateCell(1, CellType.STRING).SetCellValue("用户名"); rowTitle.CreateCell(2, CellType.STRING).SetCellValue("密码"); //创建第2行以后的内容行 using (SqlDataReader reader = cmd.ExecuteReader()) { int rowNum = 1;//第2行内容,第1已被表头“用户名”和“密码”占用 while (reader.Read()) { //逐行遍历取出数据库中有 用户名 和 密码 string dbUserName = reader.GetString(reader.GetOrdinal("fName")); string dbPassword = reader.GetString(reader.GetOrdinal("fPassword")); //对从数据库中取出的数据插入到excel的sheet表格中 IRow rowContent = sheet.CreateRow(rowNum);//创建内容行 //对第1行对应的单元格分别设定单元格内容属性和填充对应的值 rowContent.CreateCell(0, CellType.STRING).SetCellValue(rowNum); rowContent.CreateCell(1, CellType.STRING).SetCellValue(dbUserName); rowContent.CreateCell(2, CellType.STRING).SetCellValue(dbPassword); rowNum++;//动态增加行号 } MessageBox.Show(rowNum - 1 + "条数据导出成功");//实际导出的数据比定义的行号少1 } //写入excel文件 using (FileStream fs = new FileStream(sfd.FileName, FileMode.Create, FileAccess.Write)) { workbook.Write(fs);//把流写入文件 } } }
- 导入导出
- 导入/导出
- 导入导出
- 导入导出
- 导入导出
- 导入导出
- 导出导入
- 导入导出
- 导入导出
- 导入导出
- 导入/导出
- 导入导出
- 导入导出
- oracle 导出 导入 导入 导出 exp imp
- oracle10g数据导入导入导出
- 导入/导出Excel
- 导入/导出dBase
- 导出导入oracle数据库
- GXT之旅:第八章:Portal&Drag-Drop——项目使用Drag-Drop重构(2)
- C语言测试:想成为嵌入式程序员应知道的0x10个基本问题(转)
- android开发之VIM快捷键使用指南
- jsp页面之间get方式传值单数乱码双数正常
- 安装jdk
- 导入导出
- Django学习笔记
- linux内核计算时间差
- 调试directshow的filter
- C语言自学之指针理解
- Elastix 自动报工号 **工号为您服务
- Java学习之路:脚踏实地,一步一个脚印
- java出现no XXX in java.library.path的解决办法及eclipse配置
- Code RO-data RW-data ZI-data KEIL MDK