您的位置:首页 > 编程语言 > ASP

C# winform 导出导入Excel/Doc 完整实例教程 使用Aspose.Cells.dll——第一篇

2013-03-22 14:59 936 查看
还真没做过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();

}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: