DataGridView 写入到EXCEL
using System.Collections.Generic;
using System.Text;
using System.Windows.Forms;
using Microsoft.Office.Interop.Excel;
using System.Xml;
using System.Xml.Serialization;
using System.IO;
namespace txt批处理
{
class 保存
{
internal static bool 写入EXCEL(DataGridView gridView, string fileName, bool isShowExcle)
{
Microsoft.Office.Interop.Excel.Application app = new Microsoft.Office.Interop.Excel.Application();
try
{
if (app == null)
{
return false;
}
app.Visible = isShowExcle;
Workbooks workbooks = app.Workbooks;
_Workbook workbook = workbooks.Add(XlWBATemplate.xlWBATWorksheet);
Sheets sheets = workbook.Worksheets;
_Worksheet worksheet = (_Worksheet)sheets.get_Item(1);
if (worksheet == null)
{
return false;
}
string sLen = "";
//取得最后一列列名
char H = (char)(64 + gridView.ColumnCount / 26);
char L = (char)(64 + gridView.ColumnCount % 26);
if (gridView.ColumnCount < 26)
{
sLen = L.ToString();
}
else
{
sLen = H.ToString() + L.ToString();
}
//标题
string sTmp = sLen + "1";
Range ranCaption = worksheet.get_Range(sTmp, "A1");
string[] asCaption = new string[gridView.ColumnCount];
for (int i = 0; i < gridView.ColumnCount; i++)
{
asCaption[i] = gridView.Columns[i].HeaderText;
}
ranCaption.Value2 = asCaption;
//数据
for (int r = 0; r < gridView.RowCount; r++)
{
for (int l = 0; l < gridView.Columns.Count; l++)
{
if (gridView[l, r].Value != null)
{
worksheet.Cells[r + 2, l + 1] = gridView[l, r].Value.ToString().Trim();
}
}
}
workbook.SaveCopyAs(fileName);
workbook.Saved = true;
workbook.Close(false, true, null);
}
catch
{
return false;
}
finally
{
//关闭
app.UserControl = false;
app.Quit();
}
return true;
}
internal static bool 写入xml(DataGridView dataGridView, string 文件名)
{
XmlTextWriter writer = null;
bool 处理结果;
try
{
writer = new XmlTextWriter(文件名, null);
writer.Formatting = Formatting.Indented; //为使文件易读,使用缩进
writer.WriteComment("采集的数据"); //写入注释
writer.WriteStartElement("信息列表");
int 行 = dataGridView.Rows.Count;
int 列 = dataGridView.Columns.Count;
string[] 标题 = new string[列];
for (int j = 0; j < 列; j++)
{
标题[j] = dataGridView.Columns[j].HeaderText;
}
for (int i = 0; i < 行; i++)
{
writer.WriteStartElement("信息");
for (int j = 0; j < 列; j++)
{
string 信息 = dataGridView[j, i].Value != null ? dataGridView[j, i].Value.ToString() : "";
writer.WriteElementString(标题[j], 信息);
}
writer.WriteEndElement();
}
writer.WriteEndElement();
writer.Flush();
writer.Close();
处理结果 = true;
}
catch (Exception aa)
{
MessageBox.Show(aa.Message);
处理结果 = false;
}
finally
{
if (writer != null)
{
writer.Close();
}
}
return 处理结果;
}
//XML序列化写入
//string 文件名 = AppDomain.CurrentDomain.BaseDirectory + "\\配置.xml";
//T 为可序列化的类
public static bool 写入配置<T>(string 文件名, T 任务A)
{
try
{
XmlSerializer XML序列 = new XmlSerializer(typeof(T));
Stream 数据流 = new FileStream(文件名, FileMode.Create, FileAccess.Write, FileShare.ReadWrite);
XML序列.Serialize(数据流, 任务A);
数据流.Close();
return true;
}
catch (Exception ee)
{
return false;
}
}
//XML序列化读出
//T 为可反序列化的类
public static T 读出配置<T>(string 文件名)
{
XmlSerializer xs = new XmlSerializer(typeof(T));
Stream stream = null;
try
{
stream = new FileStream(文件名, FileMode.Open, FileAccess.Read, FileShare.ReadWrite);
T 结果 = (T)xs.Deserialize(stream);
stream.Close();
return 结果;
}
catch (Exception ee)
{
if (stream != null)
stream.Close();
MessageBox.Show(ee.Message, "读取失败");
return default(T);
}
}
public static bool 写入TXT(DataGridView 数据表, string 文件名)
{
if (文件名.Trim() == "")
return false;
StringBuilder s = new StringBuilder();
int 行数 = 数据表.Rows.Count;
int 列数 = 数据表.Columns.Count;
for (int i = 0; i < 行数; i++)
{
for (int j = 0; j < 列数; j++)
{
if (数据表[j, i].Value != null)
{
s.AppendLine(数据表[j, i].Value.ToString().Trim() );
}
}
s.AppendLine("");
}
StreamWriter MyWriter = null;
try
{
MyWriter = new StreamWriter(文件名, false, System.Text.Encoding.Default);
MyWriter.Write(s);
return true;
}
catch (Exception Err)
{
MessageBox.Show(Err.Message, "写文本文件发生错误", MessageBoxButtons.OK, MessageBoxIcon.Information);
return false;
}
finally
{
if (MyWriter != null)
{
MyWriter.Close();
}
}
}
}
}
转载于:https://www.cnblogs.com/zhy4606/archive/2007/12/12/991891.html
DataGridView 写入到EXCEL相关推荐
- DataGridView导出到Excel的三个方法
DataGridView导出到Excel的三个方法 原文:[转]DataGridView导出到Excel的三个方法 原文出处:http://www.yongfa365.com/Item/DataGri ...
- python3遍历电子表格_python 3读取多个文本写入同一个excel,每个文本对应各自独立的 sheet 页...
刚学习 python ,想试试 excel 导入文本,就查询了资料,写了个脚本: 具体功能是实现将一个目录下的所有文本导入同一个 excel ,每个文本对应各自独立的 sheet 页. 我的操作环境是 ...
- java jxl 写 excel文件_java采用jxl写入一个Excel文件
jxl写入一个excel文件. 读取方面请看下面相关链接,上一遍是关于读取excel的. package com.javaer.file; import java.io.File; import ja ...
- java 往excel中写数据库,poi将数据写入excel表格-怎么用java把数据库里的数据写入到excel表中...
怎么用java把数据库里的数据写入到excel表中 你是想读取excel内容,然后整合一下数据,然后再生成一个新的excel吧 package aa; import java.io.FileInput ...
- Python+request 将获取的url和接口响应时间(timeout)写入到Excel中《八》
使用场景: 在工作中,常见某个功能的查询,当查询关联表特别多时,开发写的SQL语句等等问题导致响应时间较慢,那么作为测试需要将每个接口的响应时间进行测试,对同个接口多次执行,并将测试结果写入到exce ...
- Java教程:Java使用POI将图片Base64编码写入到Excel表格当中
今天来说下在Java当中使用poi将将图片Base64编码写入到Excel表格当中,以前我们都是在表格中写内容,但不防会有时让写出图片等功能,比如说做一些评价功能,上传图片那是必然的,接下来我就说下整 ...
- Python win32com初步实现将批量的Word文件信息统计写入同一Excel表格中
环境搭建: Python 3.7(可参考博客:https://blog.csdn.net/qq_25814003/article/details/80609729) docx模块(命令行环境下输入:p ...
- matlab将数据写入到excel中
第一种: 将数据转化为cell块,从A1单元格写起 % xlswrite('info_10*2.xls ','sheet1','B2:B4') clear; clc; a=[1 2 3 4 5 6 ] ...
- python爬虫获取服务器信息,通过python自动化获取服务器信息,并写入到excel(示例代码)...
简介这篇文章主要介绍了通过python自动化获取服务器信息,并写入到excel(示例代码)以及相关的经验技巧,文章约943字,浏览量170,点赞数4,值得参考! 博主目前在电信外包工作,比较坑,因为涉 ...
最新文章
- SQL 2014 in-memory中的storage部分
- Xen 工作原理与体系架构
- iOS开发蓝牙 蓝牙4.0的各种踩过的坑,希望你们少踩点
- 文本分类中的特征词选择算法系列科普(前言AND 一)
- 如何将电子海图的航线导到gps上_电子海图(ECDIS)使用总结
- opensuse 14.1设置默认root自动登录
- java批量导入和批量删除_MyBatis 实现批量插入和删除中双层循环的写法案例
- java 弹出另存为_java如何实现 io流传输过来的文件,提示另存为弹出窗口?
- 无法找到mac地址必须重启计算机_AB PLC | CPU或以太网模块重启DHCP请求
- C#.net的常用函数列表
- linux中SPI相关API函数,linux spi驱动开发学习(一)-----spi子系统架构
- jfreeChart生成报表
- div两侧的boder断开 消失 奇怪
- 铁路订票系统的简单设计(转)
- 八年老Android开发谈:垃圾中的战斗机,offer都发了,差点无缘Offer
- Beta冲刺总结随笔
- 小资金超短线如何实现快速翻倍?
- matlab 元胞自动机
- 二次型对自变量向量的导数
- 长达1.5年华强北耳机微妙体验
热门文章
- c#,xp系统,Matlab6.5
- 高频算法面试题(字符串) 242. 有效的字母异位词
- pytest自动化6:pytest.mark.parametrize装饰器--测试用例参数化
- deep learning入门学习
- Android源码解析--SwipeMenuListView仿QQ聊天左滑
- [LeetCode] Power of Two 判断2的次方数
- Windows server 2012 之路由功能
- 常用命令-tar 加密
- .balignl 16,0xdeadbeef浅析
- 赵丽词汇速记5500幻星笔记 (0、1)