DataGridView 写入到EXCEL

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(
falsetruenull);
            }

            
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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/411815.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Git和Github的学习

来源&#xff1a; 秦时明月NightTiger Git和Github的学习 作者声明&#xff1a;本博客中所写的文章&#xff0c;都是博主自学过程的笔记&#xff0c;参考了很多的学习资料&#xff0c;学习资料和笔记会注明出处&#xff0c;所有的内容都以交流学习为主。有不正确的地方&#xf…

在asp.net中做视频转换,将各种视频文件转换成.flv格式

首先&#xff0c;我们部署一下文件夹.在工程的目录下新建几个文件夹如下图&#xff1a;UpFiles文件夹是要保存你上传的文件&#xff0c;PlayFiles文件夹是用于你转换后保存的文件&#xff08;用于网上播放&#xff09; ImgFile文件夹是保存截取视频文件的图片&#xff0c;然后那…

Android实现支付宝AR功能,Android接入支付宝实现支付功能实例

我本来是想直接讲Android支付这一块的&#xff0c;包括支付宝&#xff0c;微信&#xff0c;其他第三方整合支付等&#xff0c;但是微信开放平台他对我的账号做了限制&#xff0c;所有我今天就先把重心放在支付宝的支付上&#xff0c;也算是写得尽可能详细些吧&#xff0c;毕竟是…

android系统的发展态势,2020年安卓手机发展的7个趋势,只有延伸,并无革命性的变化...

在2019年&#xff0c;国内的几家手机厂家都是有得有失&#xff0c;虽然华为在国内大杀四方&#xff0c;但是海外市场遇到了一些麻烦&#xff0c;OPPO和VIVO也开始走性价比路线了&#xff0c;但是国内的市场还是被华为打压的厉害&#xff0c;不过海外发展还可以&#xff0c;至于…

[导入]使用SqlCommand对象执行存储过程

表tbClass存放论坛分类 字段名 字段类型 允许空 说明 ClassID uniqueidentifier 否 GUID主键&#xff0c;默认值newid() ClassName Varchar(50) 否 分类名 表tbBoard存放论坛分类中的版块 字段名 字段类型 允许空 说明 BoardID uniqueidentifier 否 GUID主键…

鸿蒙系统开发资金,华为终于动手,将拿出超十亿资金,开发者们有福了

原标题&#xff1a;华为终于动手&#xff0c;将拿出超十亿资金&#xff0c;开发者们有福了3月份也是慢慢地要过完了&#xff0c;4月的到来&#xff0c;仿佛是一个讯号&#xff0c;毕竟鸿蒙即将上线&#xff0c;大家都在期待着这款华为国产的系统&#xff0c;究竟能有什么表现&a…

Java-Runoob-高级教程-实例-数组:10. Java 实例 – 查找数组中的重复元素-un

ylbtech-Java-Runoob-高级教程-实例-数组&#xff1a;10. Java 实例 – 查找数组中的重复元素1.返回顶部 1、Java 实例 - 查找数组中的重复元素 Java 实例 以下实例演示了如何在 java 中找到重复的元素&#xff1a; Main.java 文件 public class MainClass {public static void…

[导入]ServerVariables集合

APPL_PHYSICAL_PATH检索与元数据库路径相应的物理路径。AUTH_TYPE这是用户访问受保护的脚本时&#xff0c;服务器用于检验用户的验证方法。CERT_COOKIE客户端验证的唯一ID&#xff0c;以字符串方式返回。CERT_SERIALNUMBER用户验证的序列号字段。CERT_SERVER_ISSUER服务器验证的…

华为android9.0升级,华为官方更新消息:这几款手机9月5日分批推送安卓9.0系统升级...

原标题&#xff1a;华为官方更新消息&#xff1a;这几款手机9月5日分批推送安卓9.0系统升级随着手机技术的不断发展&#xff0c;不仅手机更新换代加快&#xff0c;就连手机系统也在快速更新&#xff0c;可能很多花粉刚刚升级了基于Android8.0的EMUI8.0系统&#xff0c;对于Andr…

python中strip、startswith、endswith

python中strip、startswith、endswith strip(rm)用来删除元素内的空白符&#xff1a; rm对应要删除空白符的元素&#xff0c;当rm为空(strip())时删除所有元素的空白符 startswith、endswith用来查找开头或结尾条件的元素 例子&#xff1a; 1 li ["alec", " ar…

android终端系统时间,安卓应用修改系统时间

前言通常&#xff0c;我们来获取系统时间来做一些事情&#xff0c;那么&#xff0c;如何设置系统时间呢&#xff1f;问题抛出来&#xff0c;解决方法也就应运而生了。解决方法命令行首先我想到的是手机root&#xff0c;然后命令行date -s 要设置的时间复制代码如果手机没 root …

android红米3调用相机,红米3有什么接口?红米3有HDMI接口吗?

小米红米手机3有什么接口小米红米手机3有3.5mm耳机接口&#xff0c;microUSB充电和数据接口(采用5V/2A标准充电头)。那么小米红米手机3有什么接口?小米红米手机3采用金属机身&#xff0c;其背面由4166颗星星成菱形排列&#xff0c;设计灵感来自夜空中的繁星。当光线游走在圆点…

第二十一天

唉&#xff0c;前一段时间Hotle不能上网了&#xff0c;真是郁闷。 来日本整整三个星期了&#xff0c;天天写文档&#xff0c;真是烦死了。 不过幸好我的客户是个大美女&#xff0c;不到三十&#xff0c;还没结婚呢&#xff0c;哈哈。前两天他们举行新年会的时候&#xff0c;还给…

SAP OData $batch processing

例として、1回の呼び出しで100個の新しい商品を作成したい場合、最も簡単な方法は、$ batch要求を使用して100個のPOST呼び出しすべてを単一のサービス呼び出しにまとめることです。 URIの末尾にsap-statistics trueオプションを追加すると、所要時間についての詳細が表示され…

html第一个子元素选择,css选中父元素下的第一个子元素(:first-child)

前言最近在项目中用到 :first-child 很容易的就想到了&#xff0c;嗯嗯。这不就是选择第一个元素吗&#xff1f;好像很好用&#xff0c;平时使用中也没有遇到什么问题&#xff0c;理所当然的就以为它只会选中父元素下的第一个元素&#xff0c;对孙元素和曾孙元素没有影响。事实…

登录按钮的美化

<input type"submit" value"注册"> input[typesubmit]{width: 60px;height: 30px;/*边框*/border: 2px solid #1B47A4;/*圆角*/border-radius: 10px;/*背景渐变*/background: -moz-linear-gradient(top, #2564EE, #225CD2);background: -webkit-line…

html表格背景图片格式,HTML表格标记教程(8):背景图像属性BACKGROUND

HTML表格标记教程(8):背景图像属性BACKGROUND互联网 发布时间&#xff1a;2008-10-17 18:56:21 作者&#xff1a;佚名 我要评论为表格设置背景图像&#xff0c;可以使用任何的GIF或者JPEG图片文件。基本语法语法解释定义背景图象时&#xff0c;写下图片文件的完整路径或…

Windows安装zookeeper 单机版

首先需要安装JdK&#xff0c;从Oracle的Java网站下载&#xff0c;安装很简单&#xff0c;就不再详述。 1、下载zookeeper&#xff0c; https://mirrors.tuna.tsinghua.edu.cn/apache/zookeeper/zookeeper-3.4.14/ 2、&#xff08;单机模式&#xff09;单机安装非常简单&#xf…

html自定义滚动条不占位,如何实现滚动条在各浏览器中不占用布局

在一般浏览器中&#xff0c;当内容超出容器时&#xff0c;如果不是overflow:hidden&#xff0c;通常都会出现滚动条&#xff0c;由于滚动条并不是浮在布局内容之上&#xff0c;所以通常会带来两个问题&#xff1a;1&#xff0c;容器内部内容宽度固定&#xff0c;恰好撑满&#…