第一种:将DataGrid中的数据以流的形式写到excel中,格式以html的形式存在
Response.Clear();
Response.Buffer = true;
Response.Charset = "GB2312";
Response.AppendHeader("Content-Disposition", "attachment;filename=DialoutTemplate.xls");
// 如果设置为 GetEncoding("GB2312");导出的文件将会出现乱码!!!
Response.ContentEncoding = System.Text.Encoding.UTF8;
Response.ContentType = "application/ms-excel";//设置输出文件类型为excel文件。
//Response.ContentType = "application/vnd.ms-excel";//输出类型
//Response.Charset = "";
//关闭 ViewState
EnableViewState = false;
System.IO.StringWriter tw = new System.IO.StringWriter();//将信息写入字符串
System.Web.UI.HtmlTextWriter hw = new System.Web.UI.HtmlTextWriter(tw);//在WEB窗体页上写出一系列连续的HTML特定字符和文本。
//此类提供ASP.NET服务器控件在将HTML内容呈现给客户端时所使用的格式化功能
//获取control的HTML
dg.RenderControl(hw);//将table中的内容输出到HtmlTextWriter对象中
// 把HTML写回浏览器
Response.Write(tw.ToString());
Response.Flush();
Response.End();
第二种:将数据源中的数据以文件流的形式写到excel中,格式以txt的形式存在
FileStream fs = new FileStream(Server.MapPath("report_export/DialoutTemplate.xls"), FileMode.Create, FileAccess.Write);
StreamWriter rw = new StreamWriter(fs, Encoding.Default);//建立StreamWriter为写作准备;
DataTable dt = GetDataTableSource();
int count = dt.Columns.Count;
string head = "";
string values = "";
for (int i = 0; i < count; i++)
{
string h = dt.Columns[i].ColumnName + "\t";
string v = dt.Rows[0][i].ToString() + "\t";
head += h;
values += v;
}
rw.WriteLine(head);
rw.WriteLine(values);
rw.Close();
fs.Close();
Response.Redirect("report_export/DialoutTemplate.xls");
第三种:将数据源中的数据直接写到excel中,格式以xls形式存在,好处导出的
数据可以直接导入,可以将数字格式自动转化为文本格式,可以减少
格式转化的繁琐环节,还可以预留将数字转换为文本的格式的行数,
可以完全自定义
Excel.Application xlApp;
Excel.Workbook xlBook;
Excel.Workbooks xlBooks;
//Excel.Range xlRange;
Excel.Sheets xlsheets;
Excel.Worksheet xlSheet;
int k = 0;
try
{
string strCurrentPath = Server.MapPath("report_export/DialoutTemplate.xls");
string FilePath = strCurrentPath;
FileInfo fi = new FileInfo(FilePath);
if (fi.Exists) //判断文件是否已经存在,如果存在就删除!
{
fi.Delete();
}
xlApp = new Excel.Application();
xlBooks = xlApp.Workbooks;
xlBook = xlBooks.Add(Type.Missing);
xlsheets = xlBook.Worksheets;
IntPtr intptr = new IntPtr(xlApp.Hwnd);
xlSheet = (Excel.Worksheet)xlsheets.get_Item(1);
DataTable dt = GetDataTableSource();
int count = dt.Columns.Count;
for (int i = 0; i < count; i++)
{
string h = dt.Columns[i].ColumnName;
string v = dt.Rows[0][i].ToString();
((Excel.Range)xlSheet.Cells[1, i + 1]).Value2 = h;
Excel.Range r1 = xlSheet.get_Range(xlSheet.Cells[1, 1], xlSheet.Cells[1, i + 1]);
r1.NumberFormatLocal = "@";
((Excel.Range)xlSheet.Cells[2, i + 1]).Value2 = v;
Excel.Range r2 = xlSheet.get_Range(xlSheet.Cells[2, 1], xlSheet.Cells[2, i + 1]);
r2.NumberFormatLocal = "@";
}
for (int j = 1; j < 500; j++)
{
Excel.Range r = xlSheet.get_Range(xlSheet.Cells[2 + j, 1], xlSheet.Cells[2 + j, count]);
r.NumberFormatLocal = "@";
}
xlBook.SaveAs(FilePath, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Excel.XlSaveAsAccessMode.xlNoChange, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing);
xlBook.Close(false, Type.Missing, Type.Missing);
xlBooks.Close();
xlApp.Quit();
Response.Redirect("report_export/DialoutTemplate.xls");
GetWindowThreadProcessId(intptr, out k);
System.Diagnostics.Process p = System.Diagnostics.Process.GetProcessById(k);
p.Kill();
}
catch (Exception ex)
{
Response.Write(ex.Message);
}
finally
{
//xlRange = null;
xlSheet = null;
xlBook = null;
xlApp = null;
}
分享到:
相关推荐
在C#编程中,与Excel的数据交互是一项常见的任务,尤其在数据处理、报表生成...无论哪种方式,都可以显著提高C#处理Excel数据的效率。在实际开发中,可以根据项目规模、性能需求以及是否需要兼容旧版Excel来灵活选择。
在IT行业中,C#是一种广泛使用的编程语言,尤其在开发Windows桌面应用和.NET框架相关项目时。本话题聚焦于如何利用C#在已有的Excel模板文件中插入数据行,同时保持模板原有的格式不受破坏。这在数据分析、报表生成或...
标题中的"C#向Excel写入数据和图表源"是指使用C#编程语言来操作Microsoft Excel文件,特别是涉及向Excel工作簿中写入数据以及创建和填充图表的数据源。这一技术通常用于数据分析、报告生成或者自动化任务,使得...
在.NET开发环境中,C#语言提供了多种方式来操作Excel文件,包括使用Microsoft Office Interop库、第三方库如EPPlus、NPOI等。本主题主要围绕C#如何使用不同的方法来处理Excel,尤其是将DataTable数据写入Excel文件,...
C# 编写的操作Excel读取/写入动态库(COM/NPOI两种方式),个人推荐使用NPOI方式,因为COM方式存在无法关闭Excel进程的情况(个人体验COM方式效率有点低)。。。已设置0分,资源自取。
### C#将Excel表格中的数据读入到数组 在日常工作中,我们经常需要处理大量的Excel文件,特别是当这些文件作为数据源时。本篇将详细介绍如何利用C#语言实现将Excel表格中的数据读取到数组中,从而方便进行进一步的...
在C#编程环境中,将Excel数据导入到TextBox控件中是一项常见的需求,特别是在处理数据录入或数据展示时。本文将详细介绍如何使用C#实现这一功能,主要涉及.NET Framework中的Microsoft.Office.Interop.Excel库,以及...
C#的,winform的,这是我自己写的一个c#操作excel的例子,其中包括数据操作,字体,格式,单元格等操作,还有一个生成柱状图的方法,所有的方法都在ExcelHelper.cs类里,点击Form1窗体里的按钮可以看到各种操作的...
在.NET框架中,C#是一种常用的编程语言,用于开发各种应用程序,包括与数据处理相关的任务。Excel是微软公司的电子表格程序,广泛用于数据分析和报告。本教程将详细讲解如何使用C#来创建、读取和写入Excel文档。 ...
在C#编程中,将Excel数据提取并显示到DataGridView控件是常见的数据处理任务,尤其在数据可视化和分析中十分常见。以下是一个详细的步骤指南,介绍如何实现这一过程。 首先,你需要引用`Microsoft.Office.Interop....
在C#中处理Excel文件通常涉及两种主要的方式:一种是利用COM自动化技术,通过Microsoft Office Interop组件直接操作Excel应用程序;另一种则是使用第三方库(如EPPlus等)来读取和写入Excel文件。本篇文章将重点介绍...
这样,我们就完成了使用C#和EPPlus快速向Excel写入数据的过程。通过合理利用库提供的功能和优化技巧,可以在5到10秒内处理10000条数据,甚至更多,同时保证了内存稳定性。在实际项目中,根据具体需求调整这些参数和...
根据提供的文件信息,本文将详细解析如何使用C#语言实现向Excel文件中写入数据的过程。此案例展示了通过Microsoft Office Interop Excel库来操作Excel文件的具体步骤与代码示例。 ### 一、环境搭建与库引入 在进行...
本文将详细讲述如何使用 C# 创建 Excel 文档,并将数组数据保存到指定的列中。 首先,为了创建 Excel 文档,我们需要使用 Microsoft.Office.Interop.Excel 命名空间。在这个命名空间中,我们可以使用 Application ...
当涉及到处理电子表格数据时,例如Excel文件,C#提供了多种库和方法来实现数据的读取、操作和写入。本教程将深入讲解如何使用C#将Excel中的数据读入到DataTable中。 首先,我们需要一个库来读取Excel文件。...
在IT领域,特别是软件开发与数据处理中,C#作为一种广泛使用的编程语言,其功能强大且灵活,能够处理各种复杂的任务。其中,读取Excel数据是企业级应用中常见的需求,尤其是在数据分析、报表生成等场景下。下面将...
本示例聚焦于使用C#语言向一个固定的Excel模板中写入数据。C#提供了多种库来处理Excel文件,如EPPlus、NPOI、 ClosedXML等。这里我们将以EPPlus为例,详细讲解如何实现这一功能。 EPPlus是一个开源的.NET库,它允许...
1. 使用C#的第三方库(如NPOI或EPPlus)操作Excel文件,进行数据的读取和写入。 2. 设计数据模型类,如`Student`,以封装业务数据。 3. 动态填充Excel模板,将数据源映射到Excel文件的特定单元格。 4. 使用`System....
在.NET框架中,C#是一种常用的编程语言,用于开发各种应用程序,包括与数据处理相关的任务。本主题将详细探讨如何使用C#实现从Excel文件导入数据到ListView控件,以及如何将ListView中的数据导出回Excel文件。这两个...
本示例将深入探讨如何在C#中不依赖Microsoft Office组件来读取Excel表格数据,这通常通过使用第三方库或者.NET Framework提供的System.Data.OleDb组件实现。 首先,我们介绍最常用的方法之一,即使用`System.Data....