C#将大量数据批量写入Excel中
1、方法一:常规方法,适用于数据量较少,需要写入的列也少的情况,数据量大(列多)时速度非常慢
Microsoft.Office.Interop.Excel.Application xApp = new Microsoft.Office.Interop.Excel.ApplicationClass();
xApp.Visible = false;
Microsoft.Office.Interop.Excel.Workbook xBook = null;
Microsoft.Office.Interop.Excel.Worksheet xSheet = null;
Microsoft.Office.Interop.Excel.Range rng1 = null;xBook = xApp.Workbooks.Open(xlsfile, System.Type.Missing, System.Type.Missing, System.Type.Missing, System.Type.Missing, System.Type.Missing, System.Type.Missing, System.Type.Missing, System.Type.Missing, System.Type.Missing, System.Type.Missing, System.Type.Missing, System.Type.Missing, System.Type.Missing, System.Type.Missing);
xSheet = xBook.Sheets[1] as Microsoft.Office.Interop.Excel.Worksheet;int rowindex = 4;
for (int c = 0; c < ZDtable.Rows.Count; c++){string szddm = ZDtable.Rows[c]["ZDDM"].ToString();string sqlr = ZDtable.Rows[c]["QLR"].ToString();//常规方法,适用于数据量较少,需要写入的列也少的情况,数据量大(列多)时速度非常慢rng1 = xSheet.get_Range("C" + (rowindex + c).ToString(), System.Type.Missing);//第1列rng1.Value2 = szddm;rng1 = xSheet.get_Range("E" + (rowindex + c).ToString(), System.Type.Missing);//第3列rng1.Value2 = sqlr;
}xBook.Close(true);
Marshal.ReleaseComObject(xBook);
Marshal.ReleaseComObject(xSheet);
Marshal.ReleaseComObject(rng1);
xBook = null;
xSheet = null;
rng1 = null;
if (xApp != null)
{ System.Runtime.InteropServices.Marshal.ReleaseComObject(xApp);xApp = null;
}
System.Diagnostics.Process[] excelprocess2 = System.Diagnostics.Process.GetProcessesByName("WINEXCEL");
foreach (System.Diagnostics.Process pr in excelprocess2)
{pr.Kill();//停止关联进程
}
2、方法二:二维数组法,适用于批量写入数据,数据量大(列多)时速度也非常快(推荐)
Microsoft.Office.Interop.Excel.Application xApp = new Microsoft.Office.Interop.Excel.ApplicationClass();
xApp.Visible = false;
Microsoft.Office.Interop.Excel.Workbook xBook = null;
Microsoft.Office.Interop.Excel.Worksheet xSheet = null;
Microsoft.Office.Interop.Excel.Range range = null;xBook = xApp.Workbooks.Open(xlsfile, System.Type.Missing, System.Type.Missing, System.Type.Missing, System.Type.Missing, System.Type.Missing, System.Type.Missing, System.Type.Missing, System.Type.Missing, System.Type.Missing, System.Type.Missing, System.Type.Missing, System.Type.Missing, System.Type.Missing, System.Type.Missing);
xSheet = xBook.Sheets[1] as Microsoft.Office.Interop.Excel.Worksheet;//创建适应需求的二维数组,第一个参数表示行数,第二个参数表示列数
object[,] cellData = new object[ZDtable.Rows.Count, 3];for (int c = 0; c < ZDtable.Rows.Count; c++){string szddm = ZDtable.Rows[c]["ZDDM"].ToString();string sqlr = ZDtable.Rows[c]["QLR"].ToString();//二维数组法,适用于批量写入数据,数据量大(列多)时速度也非常快cellData[c, 0] = szddm;//第1列cellData[c, 2] = sqlr;//第3列,第二列不需要写入数据
}//将二维数组存入sheet文件中
int rows = cellData.GetLength(1);
int colums = cellData.GetLength(0);
//写入数据行
range = xSheet.get_Range("C4", Missing.Value);//数据起始位置
range = range.get_Resize(colums, rows);//数据范围
range.set_Value(Missing.Value, cellData);//将数组插入sheet中xBook.Close(true);
Marshal.ReleaseComObject(xBook);
Marshal.ReleaseComObject(xSheet);
Marshal.ReleaseComObject(range);
xBook = null;
xSheet = null;
range = null;
if (xApp != null)
{ System.Runtime.InteropServices.Marshal.ReleaseComObject(xApp);xApp = null;
}
System.Diagnostics.Process[] excelprocess2 = System.Diagnostics.Process.GetProcessesByName("WINEXCEL");
foreach (System.Diagnostics.Process pr in excelprocess2)
{pr.Kill();//停止关联进程
}
C#将大量数据批量写入Excel中相关推荐
- pandas数据分析,matplotlib绘图(折线图),图片和数据批量写入excel
pandas数据分析,matplotlib绘图并解决中文乱码问题 批量将数据写入多个sheet的excel表,并将图片和数据写入同一个sheet,查了不少api,希望对大家有帮助 代码就不一一解释了, ...
- python从数据库取数据保存为excel_python读取数据库表数据并写入excel
#!/usr/bin/env python#-*- coding: utf-8 -*- '''@Time : 2020/1/1 18:08 @Author : Jason.Jia @contact: ...
- 【高级内部资料】.NET数据批量写入性能分析 第一篇
[高级内部资料].NET数据批量写入性能分析 第一篇 说起数据的批量写入,相信大家应该不陌生了,那么我们本系列的文章不准备讲述如何来进行数据的批量写入,而是介绍常用的数据批量写入方法的性能分析. 同时 ...
- [Excel知识技能] Txt文件数据批量导入Excel
记录(日期: 2022/5/20) 在实际工作中,遇到过将Txt格式的数据导入到Excel中,为此特意记录以下操作过程,便于日后的回顾和学习 需要导入的文本文件如下图所示: Txt文本数据源 Site ...
- 使用python批量提取txt中的数据并写入excel
本人是编程小白,同时也是一名准毕业研究生,在处理众多数据时总是要花很多时间来做重复的工作以提取出需要的数据,让我十分头疼.我无法忍受这种低效的工作,于是便开始尝试使用Python进行编程来批量处理数据 ...
- python向excel写数据_Python向excel中写入数据的方法
最近做了一项工作需要把处理的数据写入到Excel表格中进行保存,所以在此就简单介绍使用Python如何把数据保存到excel表格中. 数据导入之前需要安装 xlwt依赖包,安装的方法就很简单,直接 p ...
- python 写入excel数据xlwt_用python包xlwt将数据写入Excel中
一般用两种格式的数据写入,不多说放上demo. 1.列表形式写入 import xlwt def data_write(file_path, datas): f = xlwt.Workbook() s ...
- python怎么爬取excel_求教! Python爬取的数据 怎么写入Excel表格中
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 自学了一点Python...爬取了基金网的一点数据 ,不知道怎么才能把 爬取的数据写到Excel 中 求指教 import requests import ...
- matlab存储excel数据,怎么把matlab表格数据写入excel-怎么把matlab中处理的数据存入到excel中...
怎么把matlab中处理的数据存入到excel中 1.上双开matlab 2.接着可以直接在命进行相关的操作 3.也可以直接新建一个脚本,我这里是直接在命令行进行的 4.现在我们介绍一下关于将数据变量 ...
- python 批量查询网页导出结果_python导出网页数据到excel表格-如何使用python将大量数据导出到Excel中的小技巧...
如何用python把返回的html提取相应的内容到excel 下载扩展库 xlrd 读excle xlwt 写excle 直百度上搜就能下载 下载后使用 import xlrd 就读excle了 打开 ...
最新文章
- 利用jQuery实现用户名片小动画
- 【2016.12.04】JavaScript笔记
- VS代码提示不出现或者提示变成英文或者各种奇葩问题的解决
- 二级域名是否可以随意设定_新老域名是否影响SEO优化收录排名?企业需要多域名做网站吗?...
- fiddler抓包工具配置详解
- 威马EX6 Plus探险之旅!房山郊区竟藏着个1万平超大废弃矿洞?
- SpringBoot中的异步操作与线程池
- oracle的globalname后缀,在Oracle 11g下查看数据库的global_name
- 文件上传时判断文件夹是否存在
- Android检测版本更新
- 设备log导入oracle,oracle imp 导入数据库出错 请看log!
- Python语言程序设计基础_期末作品设计——程序员计算器(2020-2 A)_答案_通识教育必修课程_上海师范大学
- Origin软件使用TIPS
- java判断子串重复_判断字符串是否是由子串重复多次构成
- kali安装磊科NW392教程
- 录音转文字电脑软件有哪些?录音如何转文字?
- cox(Quaro)对设计的崭新定义,改变我的人生
- 流行的框架Nohttp到来,让我们见证封装好的Nohttp详细使用步骤吧
- Java基础学习(2)---Java基础语法
- 标准成本计算和平均成本计算比较