c#导出excel支持多sheet导出,可自定义sheetName
来源:互联网 发布:windows视频播放器 编辑:程序博客网 时间:2024/05/17 02:41
直接贴代码,总算明白了
using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Threading.Tasks;using System.Data;using System.Data.SqlClient;using System.Configuration;using Microsoft.Office.Core;using Microsoft.Office.Interop.Excel;using System.IO;namespace ReadMailPop{ class Program { static void Main(string[] args) { string connString = ConfigurationManager.ConnectionStrings["db_conn"].ConnectionString; SqlConnection sConn = new SqlConnection(connString); DataSet dtSet = new DataSet(); //数据集DataSet try { sConn.Open(); } catch (Exception ex) { Console.WriteLine("error:" + ex.Message); } ExportLog("============start============"); string sql = File.ReadAllText(GetPath("comsql.sql")); ExportLog(sql); SqlCommand sCmd = new SqlCommand(sql, sConn); SqlDataAdapter sqlAdapter = new SqlDataAdapter(sCmd);//数据适配器DataAdapter.数据适配器根据不同的连接模式也有不同的形式:SqlDataAdapter、 OleDbDataAdapter和OdbcDataAdapter。 sqlAdapter.Fill(dtSet); System.Data.DataTable Table =dtSet.Tables[0]; string fileName = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "excel", "excel" + DateTime.Now.ToString("yyyy-MM-dd-hh-mm") + ".xlsx"); File.AppendAllText(fileName, ""); ExportLog("start export excel"); DataTabletoExcel(Table, fileName); ExportLog("============End All=========="); } private static string GetPath(string fileName) { return Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "sql", fileName); } private static void ExportLog(string msg) { Console.WriteLine(msg); string path = @"log\log" + DateTime.Now.ToString("yyyy-MM-dd").ToString() + ".txt"; msg = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss.ffff") + "\t" + msg + "\r\n"; File.AppendAllText(path, msg); } public static void DataTabletoExcel(System.Data.DataTable tmpDataTable, string strFileName) { if (tmpDataTable == null) { ExportLog("=========empty data========="); return; } int rowNum = tmpDataTable.Rows.Count; int columnNum = tmpDataTable.Columns.Count; int rowIndex = 1; int columnIndex = 0; Application xlApp = new Application(); if (xlApp == null) { Console.WriteLine("don't create excel, don't install excel"); return; } xlApp.DefaultFilePath = ""; xlApp.DisplayAlerts = true; xlApp.SheetsInNewWorkbook = 2; Workbook xlBook = xlApp.Workbooks.Add(true); Worksheet sheet = (Worksheet)xlBook.Worksheets[1]; sheet.Copy(Type.Missing, (Worksheet)xlBook.Worksheets[1]); sheet.Name = "update before"; Worksheet sheet2 = (Worksheet)xlBook.Worksheets[2]; sheet2.Name = "update After"; foreach (DataColumn dc in tmpDataTable.Columns) //将DataTable的列名导入Excel表第一行 { columnIndex++; sheet2.Cells[rowIndex, columnIndex] = dc.ColumnName; } //将DataTable中的数据导入Excel中 for (int i = 0; i < rowNum; i++) { rowIndex++; columnIndex = 0; for (int j = 0; j < columnNum; j++) { columnIndex++; sheet2.Cells[rowIndex, columnIndex] = tmpDataTable.Rows[i][j].ToString(); } } //xlBook.SaveCopyAs(HttpUtility.UrlDecode(strFileName, System.Text.Encoding.UTF8)); ExportLog("export fileurl"+ strFileName); xlBook.SaveCopyAs(strFileName); } }}
源码地址:http://download.csdn.net/download/qq_34117170/9989242
不明白可qq1574697828
阅读全文
1 0
- c#导出excel支持多sheet导出,可自定义sheetName
- 导出excel,并支持分sheet导出
- 把DBGrid导出到Excel表格(支持多Sheet)
- 把DBGrid导出到Excel表格(支持多Sheet)
- C# 使用 C# Aspose.Cells导出多个Sheet的Excel .net导出Excel C#导出Excel
- C#读取和导出EXCEL类库(可操作多个SHEET)
- C#读取和导出EXCEL类库(可操作多个SHEET)
- C#导出分Sheet的Excel文件
- C#导出分Sheet的Excel文件
- C#导出分Sheet的Excel文件
- Easyui+Spring Mvc导出Excel:支持按模板样式导出、合并表头、合并单元格、多sheet
- DevExpress通用导出Excel,支持多个控件同时导出在同一个Sheet表
- SQL Server2000 数据导出Excel(自动创建有规则的SheetName)
- 导出数据到excel多个sheet
- DEV中多个xtrareport导出excel,多个sheet页导出
- C# 导出Excel (可控制格式)
- C#导出用户自定义Excel 导出模板Excel
- 分sheet导出excel 大数据量导出
- c++学习之模型
- 1 如何掌握编写一套高质量SQL之本领--优化主题系列
- 使用 Gitbook 打造你的电子书
- 随机数
- 使用jquery判断是否为数字
- c#导出excel支持多sheet导出,可自定义sheetName
- 史上最简单的SpringCloud教程 | 第二篇: 服务消费者(rest+ribbon)
- Android开发(1)click button
- 同步和异步的区别
- JS实现将数字金额转换为大写人民币汉字的方法
- Laravel的Nginx重写规则完整代码
- 一点总结
- 深入了解Java虚拟机——JVM内存分配
- linux查找一定时间范围内的shell文件