单表头,多表头导出excel

一、单表头

 1  #region 导出
 2             if (this.dgvInfo.Rows.Count > 0)
 3             {
 4                 SaveFileDialog saveFileDialog = new SaveFileDialog();
 5                 saveFileDialog.DefaultExt = "xls";
 6                 saveFileDialog.Filter = "EXCEL文件(*.XLS)|*.xls";
 7                 saveFileDialog.FilterIndex = 0;
 8                 saveFileDialog.FileName = "单据明细";
 9                 saveFileDialog.RestoreDirectory = true;
10                 saveFileDialog.CreatePrompt = true;
11                 saveFileDialog.Title = "导出到EXCEL";
12                 saveFileDialog.ShowDialog();
13                 if (saveFileDialog.FileName == "")
14                     return;
15                 Stream myStream;
16                 myStream = saveFileDialog.OpenFile();
17                 StreamWriter sw = new StreamWriter(myStream, System.Text.Encoding.GetEncoding(-0));
18                 string str = "";
19                 try
20                 {
21                     for (int i = 0; i < this.dgvInfo.ColumnCount; i++)
22                     {
23                         if (i > 0)
24                         {
25                             str += "\t";
26                         }
27                         str += dgvInfo.Columns[i].HeaderText;
28                     }
29                     sw.WriteLine(str);
30                     for (int j = 0; j < dgvInfo.Rows.Count; j++)
31                     {
32                         string tempStr = "";
33                         for (int k = 0; k < dgvInfo.Columns.Count; k++)
34                         {
35                             if (k > 0)
36                             {
37                                 tempStr += "\t";
38                             }
39                             if (dgvInfo.Rows[j].Cells[k].Value == null)
40                             {
41                                 dgvInfo.Rows[j].Cells[k].Value = "";
42                             }
43                             tempStr += dgvInfo.Rows[j].Cells[k].Value.ToString();
44                         }
45                         sw.WriteLine(tempStr);
46                     }
47                     sw.Close();
48                     myStream.Close();
49                 }
50                 catch (Exception ex)
51                 {
52                     MessageBox.Show(ex.ToString());
53                 }
54                 finally
55                 {
56                     sw.Close();
57                     myStream.Close();
58                 }
59             }
60             #endregion

二、表多头

 1             try
 2             {
 3                 if (treedgv.Rows.Count > 0)
 4                 {
 5                     string sFile = System.Windows.Forms.Application.StartupPath;
 6
 7                     //Missing 在System.Reflection命名空间下。
 8                     //string sFileSave = sFile + "\\" + DateTime.Now.ToString("yyyyMMddHHmmss") + "一天一业绩.xls";
 9
10                     SaveFileDialog saveFileDialog = new SaveFileDialog();
11                     saveFileDialog.DefaultExt = "xls";
12                     saveFileDialog.Filter = "EXCEL文件(*.XLS)|*.xls";
13                     saveFileDialog.FilterIndex = 0;
14                     saveFileDialog.FileName = DateTime.Now.ToString("yyyyMMddHHmmss") + "支付方式";
15                     saveFileDialog.RestoreDirectory = true;
16                     saveFileDialog.CreatePrompt = true;
17                     saveFileDialog.Title = "导出到EXCEL";
18                     saveFileDialog.ShowDialog();
19                     if (saveFileDialog.FileName == "")
20                         return;
21
22                     //需要添加 Microsoft.Office.Interop.Excel引用
23                     Microsoft.Office.Interop.Excel.Application app = new Microsoft.Office.Interop.Excel.Application();
24
25                     app.Visible = false;
26                     app.UserControl = true;
27                     Microsoft.Office.Interop.Excel.Workbooks workbooks = app.Workbooks;
28                     Microsoft.Office.Interop.Excel._Workbook workbook = workbooks.Add(sFile + "\\支付方式.xls"); //加载模板
29                     Microsoft.Office.Interop.Excel.Sheets sheets = workbook.Sheets;
30                     Microsoft.Office.Interop.Excel._Worksheet worksheet = (Microsoft.Office.Interop.Excel._Worksheet)sheets.get_Item(1); //第一个工作薄。
31                     if (worksheet == null)
32                         return;  //工作薄中没有工作表.
33
34                     ////写入数据,Excel索引从1开始。
35
36                     for (int i = 1; i <= treedgv.Rows.Count; i++)
37                     {
38                         int row_ = 3 + i;  //Excel模板上表头和标题行占了2行,根据实际模板需要修改;
39                         int dt_row = i - 1; //dataTable的行是从0开始的。
40                         //worksheet.Cells[row_, 1] = i.ToString();
41                         for (int j = 1; j <= treedgv.Columns.Count; j++)
42                         {
43                             if (treedgv.Rows[0].Cells["Column" + j].Value.ToString() != "")
44                             {
45                                 worksheet.Cells[row_, j] = treedgv.Rows[i-1].Cells["Column" + j].Value.ToString();
46                             }
47                         }
48
49                     }
50
51
52                     workbook.SaveAs(saveFileDialog.FileName, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Microsoft.Office.Interop.Excel.XlSaveAsAccessMode.xlNoChange, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value);
53
54
55                     workbook.Close(null, null, null);
56                     workbooks.Close();
57                     worksheet = null;
58                     app.Quit();
59                     app = null;
60                 }
61             }
62             catch (Exception)
63             {
64
65                 MessageBox.Show("导出失败!", "异常");
66             }

单表头,多表头导出excel,布布扣,bubuko.com

时间: 2024-10-17 22:45:36

单表头,多表头导出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

复合表头的RadGridView导出excel

public class Export<T> where T : new() { /// <summary> /// gridview导出excel /// </summary> /// <param name="Ttype">行对应的对象 如T_data_datacommon</param> /// <param name="Tsource">gridview的数据源</param>

java 通过Apache poi导出excel代码demo实例

package com.zuidaima.excel.util; import java.io.ByteArrayInputStream; import java.io.ByteArrayOutputStream; import java.io.FileNotFoundException; import java.io.FileOutputStream; import java.io.IOException; import java.io.InputStream; import java.io.

【每日一点】1. Java如何实现导出Excel单表头或多表头

一.背景 在后台项目中,经常会遇到将呈现的内容导出到Excel的需求,通过都是导出单个表头的Excel文件,如果存在级联关系的情况下,也就需要导出多表头的场景.今天这篇文章就是分享导出Excel单表头或多表头的实现,目前实现方案仅支持2行表头场景.如有更复杂的3行表头.4行表头复杂需求可以自行实现. 二.实现思路 1. 借助POI包实现表头的写入.每个表头其实就是一行,如果是多个表头,无非就是将写多行表头,然后将需要合并的表头进行合并,借助POI的函数为addMergedRegion. 2. 将

带复杂表头合并单元格的HtmlTable转换成DataTable并导出Excel(转)

步骤: 一.前台JS取HtmlTable数据,根据设定的分隔符把数据拼接起来 <!--导出Excel--> <script type="text/javascript"> //导出Excel function exportExcel() { var data = ""; $("#divRptTable").find("table").find("tr").each(function

Java导出Excel三表头

1.问题背景 Java导出Excel表格时,表头出现了三个,即多表头Excel 2.实现源码 /** * * @Project:Report * @Title:ThreeHead.java * @Package:com.you.excel * @Description: * @Author:YouHaiDong * @Date:2015年11月4日 下午3:10:12 * @Version: */ package com.you.excel; import java.io.FileOutputS

silverlight RadGridView 复合表头 多表头 导出excel

ListHeaderShow.Clear(); ListHeaderShow.Add("区县"); ListHeaderShow.Add("企业名称"); ListHeaderShow.Add("监测点名称"); ListHeaderShow.Add("监测时间"); Util.Export<T_DATA_DATACOMMON> Exportxls = new Util.Export<T_DATA_DATAC

【转】C# DataTable 导出 Excel 进阶 多行表头、合并单元格、中文文件名乱码

本文原创地址:http://blog.csdn.net/ranbolwb/article/details/8083983 ,转载请保留本行. 本例子是上一篇 DataTable 导出 Excel 的进阶,除了上一篇提到的处理乱码问题,本例还添加了处理多行表头.合并单元格的功能及处理中文文件名乱码问题,应该可以满足日常开发的需要了. 废话不多说了,直接上代码: [C#] 可以写单独类 1 using System; 2 using System.Collections.Generic; 3 usi

poi导出Excel报表多表头双层表头、合并单元格

效果图: controller层方法: /**     *      * 导出Excel报表     * @param request     * @return     *      */    @RequestMapping("/export")    @ResponseBody    public void export(HttpServletRequest request,            HttpServletResponse response, String year