WinForm 对EXCEL 的操作(三)
终于有时间可把下面的WinForm对EXCEL的操作方法与大家分享了。前面介绍了如何把获取SHEET名称和如何获取SHEET里面数据两种方法。其实这两种方法都是在为EXCEL数据导入数据库作准备,至数据怎么导入数据库将会在以后学习不断分享给大家。下面就介绍下如何把数据放SHEET中:
方法1:
![](/assets/blank.gif)
![](/assets/blank.gif)
1 public void DataToExcel(DataTable dt) 2 { 3 try 4 { 5 if (dt == null) return; 6 7 Microsoft.Office.Interop.Excel.ApplicationClass myExcel = new Microsoft.Office.Interop.Excel.ApplicationClass(); 8 Microsoft.Office.Interop.Excel.Workbook xBk; //工作薄 9 Microsoft.Office.Interop.Excel.Worksheet xSt; //工作Sheet 10 11 xBk = myExcel.Workbooks.Add(true);12 xSt = (Microsoft.Office.Interop.Excel.Worksheet)xBk.ActiveSheet;13 14 myExcel.Visible = true;15 16 for (int i = 1; i <= dt.Columns.Count; ++i)17 {18 xSt.Cells[1, i] = dt.Columns[i - 1].ColumnName;19 }20 21 for (int i = 2; i <= dt.Rows.Count + 1; ++i)22 {23 for (int j = 1; j <= dt.Columns.Count; ++j)24 {25 xSt.Cells[i, j] = dt.Rows[i - 2][j - 1].ToString();26 }27 }28 29 for (int i = 1; i <= dt.Columns.Count; ++i)30 {31 Microsoft.Office.Interop.Excel.Range selectRange = xSt.get_Range(xSt.Cells[1, i], xSt.Cells[dt.Rows.Count + 1, i]);32 selectRange.Columns.AutoFit();33 } 34 }35 catch36 {37 38 }39 }
方法2:
![](/assets/blank.gif)
![](/assets/blank.gif)
1 public void dataToExcel(DataTable dt) 2 { 3 4 SaveFileDialog dlg = new SaveFileDialog(); 5 dlg.Filter = "Execl files (*.xls)|*.xls"; 6 dlg.FilterIndex = 0; 7 dlg.RestoreDirectory = true; 8 dlg.Title = "保存为Excel文件"; 9 dlg.FileName = DateTime.Now.Ticks.ToString().Trim();10 11 if (dlg.ShowDialog() == DialogResult.OK)12 {13 Stream myStream = dlg.OpenFile(); 14 StreamWriter sw = new StreamWriter(myStream, System.Text.Encoding.GetEncoding(-0));15 string columnTitle = "";16 try17 {18 //写入列标题 19 for (int i = 0; i < dt.Columns.Count; i++)20 {21 if (i > 0)22 {23 columnTitle += "\t";24 }25 columnTitle += dt.Columns[i].ColumnName;26 }27 sw.WriteLine(columnTitle);28 29 //写入列内容 30 for (int j = 0; j < dt.Rows.Count; j++)31 {32 string columnValue = "";33 for (int k = 0; k < dt.Columns.Count; k++)34 {35 if (k > 0)36 {37 columnValue += "\t";38 }39 if (dt.Rows[j][k].ToString() == "")40 columnValue += "null";41 else42 columnValue += dt.Rows[j][k].ToString().Trim();43 }44 sw.WriteLine(columnValue);45 }46 }47 catch (Exception e)48 {49 MessageBox.Show(e.ToString());50 }51 finally52 {53 sw.Close();54 myStream.Close();55 }56 }57 }58 }
显然第二种方法要比第一种方法执行速度要快得多,但是第二种方法保存的文件不是真正的EXCEL文件,而用流写的一定格式的类EXCEL文件。希望这种方法都能够帮助你。如何还有其它方法,请各位提示。以供大家共同进步。
经过网友落叶潇潇雨指点,今天也看了一下他说的那种方法。确实简单实用多了,感觉他对我的指点。现将第三种方法分享给大家。
首先在自己工程中添加MyXls.SL2.dll引用,现在把链接地址给大家:
http://files.cnblogs.com/aland-liu/MyXls.SL2.rar
方法3:
private void ExportExcel(string fileName, System.Data.DataTable dt)
{
try
{
XlsDocument xls = new XlsDocument();
xls.FileName = fileName;
string s = fileName;
s = s.Substring(s.LastIndexOf('\\') + 1, s.LastIndexOf('.') - s.LastIndexOf('\\') - 1);
org.in2bits.MyXls.Worksheet sheet = xls.Workbook.Worksheets.AddNamed(s);
ColumnInfo cinfo = new ColumnInfo(xls, sheet);
cinfo.Collapsed = true;
cinfo.ColumnIndexStart = 0;
cinfo.ColumnIndexEnd = (ushort)dt.Columns.Count;
sheet.AddColumnInfo(cinfo);
XF cellXF = xls.NewXF();
cellXF.VerticalAlignment = VerticalAlignments.Centered;
cellXF.HorizontalAlignment = HorizontalAlignments.Centered;
//cellXF.Font.Bold = true;
Cells cells = sheet.Cells;
for (int i = 1; i <= dt.Columns.Count; i++)
{
cells.Add(1, i, dt.Columns[i - 1].ColumnName, cellXF);
}
for (int i = 0; i < dt.Rows.Count; i++)
{
for (int j = 0; j < dt.Columns.Count; j++)
{
cells.Add(2 + i, 1 + j, dt.Rows[i][j].ToString(), cellXF);
}
}
xls.Save();
//System.Diagnostics.Process.Start(fileName);
}
catch
{
}
}
不足还望指正,谢谢。
转载于:https://www.cnblogs.com/aland-liu/archive/2011/07/25/2116525.html
WinForm 对EXCEL 的操作(三)相关推荐
- 关于在WinForm下对Excel进行操作的总结
关于在WinForm下对Excel进行操作的总结 [转]http://hi.baidu.com/dearfather/blog/item/8911302426071039c9955929.html - ...
- QTP对Excel的操作(三)之 Vbs对Excel的操作 实例讲解
QTP对Excel的操作(一)与(二)中,分别讲解了对Excel的读与写操作,本讲我们以实例讲解,QTP执行测试过程中如何通过对Excel读写实现执行测试用例. 本例通过注册新浪会员页面(http:/ ...
- npoi导出文件不保存在服务器,winform NPOI excel 导出并选择保存文件路径
public void ExcelOp(DataGridView gdv,ArrayList selHead) { if (selHead.Count==0) { MessageBox.Show(&q ...
- python能实现excel什么功能_Python pandas对excel的操作实现示例
最近经常看到各平台里都有Python的广告,都是对excel的操作,这里明哥收集整理了一下pandas对excel的操作方法和使用过程.本篇介绍 pandas 的 DataFrame 对列 (Colu ...
- python对excel操作简书_Python实现EXCEL常用操作——pandas简介
知乎的代码块太丑了,这里的内容就更新到简书了Python实现EXCEL常用操作--pandas简介www.jianshu.com EXCEL是日常办公最常用的软件,然而遇到数据量特别大(超过10W条 ...
- python对excel增删改查_Python之Excel 优雅操作手法 精选
前言 一直想写这一篇,却又一直被事情拖着. 我带的一个项目团队正好进行到这一块儿了,正好,将这事儿办了,以后要用的时候也不用到处找. 半点不求人. 慢慢看,优雅的操作都在后头 Tips:当下2020年 ...
- java excel 操作 poi_Java使用apache poi进行excel相关操作
一.基本介绍 1.1.Apache POI介绍 Apache POI是一个可以进行微软的文档进行开源库,可以操作的文档类型包括word.ppt.excel.visio.outlook.... 本文主要 ...
- 计算机基础知识上机操作excer,《计算机应用基础》Excel上机操作练习题.doc
<计算机应用基础>Excel上机操作练习题.doc <计算机应用基础>Excel上机操作练习题 第1题 建立一工作簿,并作如下操作1. 在Sheet工作表中输入如下内容 ...
- c#导出Excel及操作
excel导出在C#代码中应用己经很广泛了,我这里就做些总结,供自己和读者学习用. Excel知识点. 一.添加引用和命名空间 添加Microsoft.Office.Interop.Excel引 ...
最新文章
- 「日常训练」 Mike and Fun (CFR305D2B)
- 虚拟机安装Ubuntu无法通过Xshell登录
- netty权威指南第三版_Hadoop权威指南(第二版及第三版)
- lambda表达式的语法精简
- 安装you-get和ffmpeg for Mac
- 【引用】各种软件视频教学
- 第26次ccf认证第二题:寻宝!大冒险!
- KMP Seek the Name,Seek the Fame
- 深度学习热点|超直观无公式图解Contrastive Predictive Coding从脸盲说起
- 【干货】PCB线宽与电流关系
- 有什么软件android跟电脑连接无线,手机电脑连接的软件有哪些(安卓手机连接电脑的方法)...
- 经验:怎么样免费在线PDF拆分
- 《创新的艺术》 读书笔记
- OpenCL入门一:Intel核心显卡OpenCL环境搭建
- 腾讯微博 - QQ微博
- 回复率超高的开发信怎么写?
- AMiner会议论文推荐第五十一期
- bat 批量复制 cd /d 报目录名或卷标语法不正确问题的解决
- 红衣教主“叫停”360路由器的背后(上)
- 【中级前端面经】中小型公司面试时都会问些什么?