C#导出Excel动态列

一、用StreamWrite流对象,导出Excel

1、

 string _sPath = GenerateSalaryMonthlyReport(dgvSalarySum);
 System.Diagnostics.Process.Start(_sPath);

2、

 public String GenerateSalaryMonthlyReport(DataGridView dgvData)
        {
            String _sPath = String.Format(@".\{0}.txt", BaseClass.getGUID());
            String _sGoal = String.Format(@"{0}{1}.xls", System.Configuration.ConfigurationManager.AppSettings["Statistic"],
                                                         BaseClass.ExcelFileName("员工每月薪酬表"));

            System.IO.StreamWriter _sw = new System.IO.StreamWriter(_sPath, false, Encoding.Default);

            //表头
            _sw.WriteLine("人力宝人力资源管理系统V2.0");
            _sw.WriteLine("薪酬管理模块 <<员工每月薪酬表>>");
            _sw.WriteLine();

            _sw.Write(String.Format("{0}\t", "序号"));
            foreach (DataGridViewColumn dgvc in dgvData.Columns)
            {
                if (dgvc.Visible)
                {
                    _sw.Write(String.Format("{0}\t", dgvc.HeaderText));
                }
            }
            _sw.Write(String.Format("{0}\t{1}\t{2}", "员工签字", "日期", "备注"));
            _sw.WriteLine();

            int i = 1;
            foreach (DataGridViewRow dgvr in dgvData.Rows)
            {
                _sw.Write(String.Format("{0}", i));
                for (int j = 0; j < dgvData.Columns.Count - 1; j++)
                {
                    if (dgvData.Columns[j].Visible)
                    {
                        if (j == 3)
                        {
                            _sw.Write(String.Format("\t‘{0}", dgvr.Cells[j].Value));
                        }
                        else
                        {
                         _sw.Write(String.Format("\t{0}", dgvr.Cells[j].Value));
                        }
                    }
                }

                i++;
                _sw.WriteLine();
            }
            _sw.WriteLine();
            _sw.WriteLine(String.Format("{0}\t\t{1}\t\t\t\t{2}\t\t{3}", "制表人", "制表日期", "审核人", "审核日期"));
            _sw.Close();
            System.IO.File.Move(_sPath, _sGoal);
            return _sGoal;
        }
时间: 2024-10-17 08:27:22

C#导出Excel动态列的相关文章

PHP导出Excel案列

$data = array();$data = $app->getStatisApp(2,$username,$whereDepartment,$status,$level,$time);$str = mb_convert_encoding ("姓名,一级部门,所在部门,直属上级,入职时间\n", 'GBK', 'UTF8' );$filename = "转正申请表审核进度统计";$filename = mb_convert_encoding ( $filen

C# 使用Epplus导出Excel [2]:导出动态列数据

上一篇导出excel,是导出已知固定列,有时候我们根本就不知道有几列.列名是什么,因此这些动态列,可以用Dictionary<string,string>接收. 1.实体Student上加上一个字段Dictionarys Student.cs public class Student { public String Name { get; set; } public String Code { get; set; } public Dictionary<string, string>

数据导出Excel,动态列

今天碰到一个需求,要求将用户回答的问卷及问题导出Excel表格,问卷对应的问题数量不一致,需要动态添加列表头,简单记录. 要导出Excel需要添加poi.jar包 用户-问卷实体(固定列): package com.lwl.bean; import com.util.annotation.BeanField; import lombok.Data; import java.sql.Timestamp; import java.util.List; /** * 问卷实体(用于导出excel) *

使用easypoi根据表头信息动态导出excel

第一步添加依赖 <dependency> <groupId>cn.afterturn</groupId> <artifactId>easypoi-spring-boot-starter</artifactId> <version>4.1.3</version> </dependency> <!-- https://mvnrepository.com/artifact/org.apache.poi/poi

yii2 数据导出 excel导出以及导出数据时列超过26列时解决办法

作者:白狼 出处:http://www.manks.top/article/yii2_excel_extension? 本文版权归作者,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利. 先概括下我们接下来要说的大致内容: 数据列表页面导出excel数据, 1.可以根据GridView的filter进行搜索数据并导出 2.可以自行扩展数据导出的时间直接导出数据 //先来看controller层,接收GridView参数并做拼接处理 php c

winform导入导出excel,后台动态添加控件

思路: 导入: 1,初始化一个OpenFileDialog类 (OpenFileDialog fileDialog = new OpenFileDialog();) 2, 获取用户选择文件的后缀名(string extension = Path.GetExtension(fileDialog.FileName).ToLower();),并设置允许后缀文件名: 3,NPOI转datetable,遍历tatetable转成实体类列表并入库: 导出: 1, 创建提示用户保存类,SaveFileDial

RS导出Excel交叉表角对应的列占用多列问题

在Cognos报表展示的时候,很多用户为了计算会把数据报表导出成excel然后再做统计,于是乎我做的一张报表导出成Excel的时候就出现了这样的问题 从上图可以看出交叉表角对应的列 ‘一级手术’和‘二级手术’在报表里面是一列数据,但是导出的时候却占用了两列,而后面非交叉表角对应的列导出显示正常 问题分析: 1:是表格布局问题,于是看了看其他导出正常的,表格布局正常啊,于是排除了表格的问题 2:由于交叉表角对应的列才有导出问题,于是把原因归结在交叉表角以及所对应的列的范围内 解决办法: 首先来看一

C# 使用NPOI导出Excel,首行冻结,添加筛选,填充颜色,列宽自适应

使用NuGet安装NPOI,添加以下命名空间 using NPOI.HSSF.UserModel; using NPOI.SS.UserModel; using NPOI.SS.Util; using NPOI.XSSF.UserModel; 添加类 ExcelExporter public static class ExcelExporter { /// <summary> /// DataTable导出Excel /// </summary> /// <param nam

POI导出EXCEL经典实现

在web开发中,有一个经典的功能,就是数据的导入导出.特别是数据的导出,在生产管理或者财务系统中用的非常普遍,因为这些系统经常要做一些报表打印的工作.而数据导出的格式一般是EXCEL或者PDF,我这里就用两篇文章分别给大家介绍下.(注意,我们这里说的数据导出可不是数据库中的数据导出!么误会啦^_^) 呵呵,首先我们来导出EXCEL格式的文件吧.现在主流的操作Excel文件的开源工具有很多,用得比较多的就是Apache的POI及JExcelAPI.这里我们用Apache POI!我们先去Apach