还真没做过winform的导出导入,今天上网百度了一下。结果---

所以还是我自己写个吧。之前做过web的,半搬半做就OK。

1添加引用:Aspose.Cells.dll(我们就叫工具包吧,可以从网上下载。关于它的操作我在“Aspose.Cells操作说明 中文版 下载 Aspose C# 导出Excel 实例”一文中的说。这里你暂时也可不理会它。)

Aspose.Cells.dll  和中文说明 下载地址: http://item.taobao.com/auction/item_detail-0db2-f9b1d99e6cb27d78ae9e6373a1529633.htm

即使没有安装office也能用噢,这是一个好强的大工具。

2编写Excel操作类

using System;
using System.Collections.Generic;
using System.Text;
using Aspose.Cells;
using System.Data;

public class AsposeExcel
{

private string outFileName = "";
     private string fullFilename = "";
     private Workbook book = null;
     private Worksheet sheet = null;

public AsposeExcel(string outfilename, string tempfilename)//导出构造数
     {
         outFileName = outfilename;
         book = new Workbook();
         // book.Open(tempfilename);这里我们暂时不用模板
         sheet = book.Worksheets[0];
     }
     public AsposeExcel(string fullfilename)//导入构造数
     {
         fullFilename = fullfilename;
         // book = new Workbook();
         //book.Open(tempfilename);
         //sheet = book.Worksheets[0];
     }

private void AddTitle(string title, int columnCount)
     {
         sheet.Cells.Merge(0, 0, 1, columnCount);
         sheet.Cells.Merge(1, 0, 1, columnCount);

Cell cell1 = sheet.Cells[0, 0];
         cell1.PutValue(title);
         cell1.Style.HorizontalAlignment = TextAlignmentType.Center;
         cell1.Style.Font.Name = "黑体";
         cell1.Style.Font.Size = 14;
         cell1.Style.Font.IsBold = true;

Cell cell2 = sheet.Cells[1, 0];
         cell1.PutValue("查询时间:" + DateTime.Now.ToLocalTime());
         cell2.SetStyle(cell1.Style);
     }

private void AddHeader(DataTable dt)
     {
         Cell cell = null;
         for (int col = 0; col < dt.Columns.Count; col++)
         {
             cell = sheet.Cells[0, col];
             cell.PutValue(dt.Columns[col].ColumnName);
             cell.Style.Font.IsBold = true;
         }
     }

private void AddBody(DataTable dt)
     {
         for (int r = 0; r < dt.Rows.Count; r++)
         {
             for (int c = 0; c < dt.Columns.Count; c++)
             {
                 sheet.Cells[r + 1, c].PutValue(dt.Rows[r][c].ToString());
             }
         }
     }
     //导出------------下一篇会用到这个方法
     public Boolean DatatableToExcel(DataTable dt)
     {
         Boolean yn = false;
         try
         {
             //sheet.Name = sheetName;

//AddTitle(title, dt.Columns.Count);
             //AddHeader(dt);
             AddBody(dt);

sheet.AutoFitColumns();
             //sheet.AutoFitRows();

book.Save(outFileName);
             yn = true;
             return yn;
         }
         catch (Exception e)
         {
             return yn;
             // throw e;
         }
     }

public DataTable ExcelToDatatalbe()//导入
     {
         Workbook book = new Workbook();
         book.Open(fullFilename);
         Worksheet sheet = book.Worksheets[0];
         Cells cells = sheet.Cells;
         //获取excel中的数据保存到一个datatable中
         DataTable dt_Import = cells.ExportDataTableAsString(0, 0, cells.MaxDataRow + 1, cells.MaxDataColumn + 1, false);
         // dt_Import.
         return dt_Import;
     }
}

3导出按钮事件中编写导出数据方法:

private void bt_excel_out_Click(object sender, EventArgs e)
         {
           
             SaveFileDialog saveFileDialog1 = new SaveFileDialog();//如果你直接从对话框中拉出来,就不用new了噢。

//设置文件类型
             saveFileDialog1.Filter = "导出Excel (*.xls)|*.xls|Word (*.doc)|*.doc";
             saveFileDialog1.FilterIndex = 2;
             saveFileDialog1.RestoreDirectory = true;
             saveFileDialog1.CreatePrompt = true;
             saveFileDialog1.Title = "导出文件保存路径";
             //saveFileDialog1.ShowDialog();
             //string strName = saveFileDialog1.FileName;

//设置默认文件类型显示顺序    
             //saveFileDialog1.FilterIndex = 2;

//保存对话框是否记忆上次打开的目录    
             saveFileDialog1.RestoreDirectory = true;

//点了保存按钮进入    
             if (saveFileDialog1.ShowDialog() == DialogResult.OK)
             {
                 //获得文件路径    
                 string localFilePath = saveFileDialog1.FileName.ToString();

//获取文件名,不带路径    
                 string fileNameExt = localFilePath.Substring(localFilePath.LastIndexOf("\\") + 1);

//获取文件路径,不带文件名    
                 string FilePath = localFilePath.Substring(0, localFilePath.LastIndexOf("\\"));

//给文件名前加上时间    
                 string newFileName = DateTime.Now.ToString("yyyyMMdd") + fileNameExt;

saveFileDialog1.FileName = FilePath + "\\" + newFileName;
                 System.IO.FileStream fs = (System.IO.FileStream)saveFileDialog1.OpenFile();//输出文件

                 //下面是导出数据到doc        导出到excel请看下一篇(发现没有AsposeExcel
类还没有用到呢,那正是导出到excel要用的)
                 StreamWriter writer = new StreamWriter(fs);
                 writer.Write("tttt");//这里就是你要导出到word文档的数据
                 writer.Flush();
                 writer.Close();
                 fs.Close();

}

}

C# winform 导出导入Excel/Doc 完整实例教程[网上看到的]的更多相关文章

  1. C# WinForm 导出导入Excel/Doc 完整实例教程[使用Aspose.Cells.dll]

    [csharp] view plain copy 1.添加引用: Aspose.Cells.dll(我们就叫工具包吧,可以从网上下载.关于它的操作我在“Aspose.Cells操作说明 中文版 下载 ...

  2. C# WinForm使用Aspose.Cells.dll 导出导入Excel/Doc 完整实例教程

    1.添加引用: Aspose.Cells.dll(我们就叫工具包吧,可以从网上下载.关于它的操作我在“Aspose.Cells操作说明 中文版 下载 Aspose C# 导出Excel 实例”一文中的 ...

  3. .Net MVC 导入导出Excel总结(三种导出Excel方法,一种导入Excel方法) 通过MVC控制器导出导入Excel文件(可用于java SSH架构)

    .Net MVC  导入导出Excel总结(三种导出Excel方法,一种导入Excel方法) [原文地址] 通过MVC控制器导出导入Excel文件(可用于java SSH架构)   public cl ...

  4. php利用PHPExcel类导出导入Excel用法

    PHPExcel类是php一个excel表格处理插件了,下面我来给大家介绍利用PHPExcel类来导入与导出excel表格的应用方法,有需要了解的朋友不防参考参考(PHPExcel自己百度下载这里不介 ...

  5. DevExpress XtraGrid 数据导出导入Excel

    // <summary> /// 导出按钮 /// </summary> /// <param name="sender"></param ...

  6. asp.net core导出导入excel

    使用NPOI导入导出excel,已经封装好Action可以直接调用 导出 效果图 使用方法 定义导出实体 class Student { public int Id { get; set; } pub ...

  7. 用PHPExcel导出导入Excel

    thinkPHP5.0框架 查询数据库调用Excel方法 public function exportlist(){ $orderModel = new OrderModel(); if($start ...

  8. asp.net Mvc Npoi 导出导入 excel

    因近期项目遇到所以记录一下: 首先导出Excel : 首先引用NPOI包 http://pan.baidu.com/s/1i3Fosux (Action一定要用FileResult) /// < ...

  9. PHPExcel导出导入excel、csv等格式数据

    <?php if(!defined('BASEPATH')) exit('No direct script access allowed'); //物资发料单明细 class Read_writ ...

随机推荐

  1. 淘宝开源Web服务器Tengine安装教程

    简介Tengine是由淘宝核心系统部基于Nginx开发的Web服务器,它在Nginx的基础上,针对大访问量网站的需求,添加了很多功能和特性.Tengine的性能和稳定性已经在大型的网站如淘宝网,淘宝商 ...

  2. UIImageView的图片拉伸

    iOS 8:UIView Stretching设置 使用小图片当变长输入框或类似QQ聊天文字背景效果时,需要拉伸图片.UIImage提供了三个可完成此任务的方法: resizableImageWith ...

  3. struts2初印象

    第一次写这么正式的文章,如果写的不好的地方,请指出. 今天玩了一下struts2,不过貌似是我被他玩了.简要笔记如下: 一.配置struts2(在eclipse Helios版本下) (1)先创建一个 ...

  4. SSH中调用另一action的方法(chain,redirect)

      从一个Action直接跳到另一个Action中,Struts提供了两种结果类型可以实现:chain.redirect.        从Servlet中学到重定向是不能保留参数的,也就是说重定向了 ...

  5. SQL Server系统视图 [不定期更新]

    1.sys.objects:在数据库中创建的每个用户定义的架构作用域内的对象(如表.视图.约束.默认值.日志.规则存储过程等,但不包括DDL触发器)在该表中均对应一行. 列名 说明 name 对象名. ...

  6. 添加PATH

    在Linux CentOS系统上安装完php和MySQL后,为了使用方便,需要将php和mysql命令加到系统命令中,如果在没有添加到环境变量之前,执行“php -v”命令查看当前php版本信息时时, ...

  7. wap开发笔记之幻灯片

    最近在进行wap站研究,发现网上成熟的wap幻灯片都很难找到,在此贴出一个iphone的幻灯效果,希望对wap站开发的人有些帮助. 点此下载

  8. checkbox在jquery版本1.9 以上用attr不可重复操作的问题【附解决方案】

    最近做个项目,需要重复多次更改checkbox的状态,使用jquery 1.10.2的最新版本时发现,对checkbox的选中状态无法多次选中.测试代码如下: <!DOCTYPE html PU ...

  9. 在vmware 6.5+ubuntu12.04上安装VMware tools出现问题的分析

    笔者已经写了一篇关于安装"VMware Tools",以实现文件共享的文章,那篇文章对于你实现共享操作是足够了, 所以,倘若你赶时间不如直接去在虚拟机的linux中利用VMware ...

  10. c#开发Mongo笔记第一篇

    现在开发的这个项目要用mongo数据库开发,发现网上的这方面教程还是比较少的,只能边看官方说明边进行开发,再开发过程中写下笔记,也算上是一个总结吧. 我开发使用的是vs2013了,驱动用的是最新的1. ...