using System;
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相关推荐

  1. DataGridView导出到Excel的三个方法

    DataGridView导出到Excel的三个方法 原文:[转]DataGridView导出到Excel的三个方法 原文出处:http://www.yongfa365.com/Item/DataGri ...

  2. python3遍历电子表格_python 3读取多个文本写入同一个excel,每个文本对应各自独立的 sheet 页...

    刚学习 python ,想试试 excel 导入文本,就查询了资料,写了个脚本: 具体功能是实现将一个目录下的所有文本导入同一个 excel ,每个文本对应各自独立的 sheet 页. 我的操作环境是 ...

  3. java jxl 写 excel文件_java采用jxl写入一个Excel文件

    jxl写入一个excel文件. 读取方面请看下面相关链接,上一遍是关于读取excel的. package com.javaer.file; import java.io.File; import ja ...

  4. java 往excel中写数据库,poi将数据写入excel表格-怎么用java把数据库里的数据写入到excel表中...

    怎么用java把数据库里的数据写入到excel表中 你是想读取excel内容,然后整合一下数据,然后再生成一个新的excel吧 package aa; import java.io.FileInput ...

  5. Python+request 将获取的url和接口响应时间(timeout)写入到Excel中《八》

    使用场景: 在工作中,常见某个功能的查询,当查询关联表特别多时,开发写的SQL语句等等问题导致响应时间较慢,那么作为测试需要将每个接口的响应时间进行测试,对同个接口多次执行,并将测试结果写入到exce ...

  6. Java教程:Java使用POI将图片Base64编码写入到Excel表格当中

    今天来说下在Java当中使用poi将将图片Base64编码写入到Excel表格当中,以前我们都是在表格中写内容,但不防会有时让写出图片等功能,比如说做一些评价功能,上传图片那是必然的,接下来我就说下整 ...

  7. Python win32com初步实现将批量的Word文件信息统计写入同一Excel表格中

    环境搭建: Python 3.7(可参考博客:https://blog.csdn.net/qq_25814003/article/details/80609729) docx模块(命令行环境下输入:p ...

  8. matlab将数据写入到excel中

    第一种: 将数据转化为cell块,从A1单元格写起 % xlswrite('info_10*2.xls ','sheet1','B2:B4') clear; clc; a=[1 2 3 4 5 6 ] ...

  9. python爬虫获取服务器信息,通过python自动化获取服务器信息,并写入到excel(示例代码)...

    简介这篇文章主要介绍了通过python自动化获取服务器信息,并写入到excel(示例代码)以及相关的经验技巧,文章约943字,浏览量170,点赞数4,值得参考! 博主目前在电信外包工作,比较坑,因为涉 ...

最新文章

  1. SQL 2014 in-memory中的storage部分
  2. Xen 工作原理与体系架构
  3. iOS开发蓝牙 蓝牙4.0的各种踩过的坑,希望你们少踩点
  4. 文本分类中的特征词选择算法系列科普(前言AND 一)
  5. 如何将电子海图的航线导到gps上_电子海图(ECDIS)使用总结
  6. opensuse 14.1设置默认root自动登录
  7. java批量导入和批量删除_MyBatis 实现批量插入和删除中双层循环的写法案例
  8. java 弹出另存为_java如何实现 io流传输过来的文件,提示另存为弹出窗口?
  9. 无法找到mac地址必须重启计算机_AB PLC | CPU或以太网模块重启DHCP请求
  10. C#.net的常用函数列表
  11. linux中SPI相关API函数,linux spi驱动开发学习(一)-----spi子系统架构
  12. jfreeChart生成报表
  13. div两侧的boder断开 消失 奇怪
  14. 铁路订票系统的简单设计(转)
  15. 八年老Android开发谈:垃圾中的战斗机,offer都发了,差点无缘Offer
  16. Beta冲刺总结随笔
  17. 小资金超短线如何实现快速翻倍?
  18. matlab 元胞自动机
  19. 二次型对自变量向量的导数
  20. 长达1.5年华强北耳机微妙体验

热门文章

  1. c#,xp系统,Matlab6.5
  2. 高频算法面试题(字符串) 242. 有效的字母异位词
  3. pytest自动化6:pytest.mark.parametrize装饰器--测试用例参数化
  4. deep learning入门学习
  5. Android源码解析--SwipeMenuListView仿QQ聊天左滑
  6. [LeetCode] Power of Two 判断2的次方数
  7. Windows server 2012 之路由功能
  8. 常用命令-tar 加密
  9. .balignl 16,0xdeadbeef浅析
  10. 赵丽词汇速记5500幻星笔记 (0、1)