转换DataSet中的多个表为Excel中的多个Sheets
第一种方法:
1. 在设计页面,有一个button按钮,当用户单击按钮的时候,发生转换
<asp:Button ID="Export" runat="server" Text="Export" OnClick="Export_Click" />
2. 发生转换的代码
protected void Export_Click(object sender, EventArgs e)
{
using (SqlConnection conn = new SqlConnection(ConfigurationManager.ConnectionStrings["DemosDatabaseConnectionString"].ConnectionString))
{
DataSet ds = new System.Data.DataSet(); string sql1 = "select * from Customers";
SqlDataAdapter sda1 = new SqlDataAdapter(sql1, conn);
sda1.Fill(ds, "Table1"); string sql2 = "select * from Users";
SqlDataAdapter sda2 = new SqlDataAdapter(sql2, conn);
sda2.Fill(ds, "Table2"); string sq3 = "select * from AccordionContent";
SqlDataAdapter sda3 = new SqlDataAdapter(sq3, conn);
sda3.Fill(ds, "Table3"); //The file save path
string FileName = "D:\\Testing.xls";
Application ExcelApp = new Application();
Workbook ExcelWorkBook = null;
Worksheet ExcelWorkSheet = null;
ExcelApp.Visible = true;
ExcelWorkBook = ExcelApp.Workbooks.Add(XlWBATemplate.xlWBATWorksheet);
List<string> SheetNames = new List<string>();
SheetNames.Add("Customers Information");
SheetNames.Add("Users Information");
SheetNames.Add("AccordionContent Information");
try
{
for (int i = ; i < ds.Tables.Count; i++)
ExcelWorkBook.Worksheets.Add(); //Adding New sheet in Excel Workbook
for (int i = ; i < ds.Tables.Count; i++)
{
int r = ; // Initialize Excel Row Start Position = 1
ExcelWorkSheet = ExcelWorkBook.Worksheets[i + ];
//Writing Columns Name in Excel Sheet
for (int col = ; col < ds.Tables[i].Columns.Count; col++)
ExcelWorkSheet.Cells[r, col] = ds.Tables[i].Columns[col - ].ColumnName;
r++;
//Writing Rows into Excel Sheet
for (int row = ; row < ds.Tables[i].Rows.Count; row++) //r stands for ExcelRow and col for ExcelColumn
{
// Excel row and column start positions for writing Row=1 and Col=1
for (int col = ; col < ds.Tables[i].Columns.Count; col++)
ExcelWorkSheet.Cells[r, col] = ds.Tables[i].Rows[row][col - ].ToString();
r++;
}
ExcelWorkSheet.Name = SheetNames[i];//Renaming the ExcelSheets
}
ExcelWorkBook.SaveAs(FileName);
ExcelWorkBook.Close();
ExcelApp.Quit();
Marshal.ReleaseComObject(ExcelWorkSheet);
Marshal.ReleaseComObject(ExcelWorkBook);
Marshal.ReleaseComObject(ExcelApp);
}
catch (Exception exHandle)
{
Console.WriteLine("Exception: " + exHandle.Message);
Console.ReadLine();
}
finally
{
foreach (Process process in Process.GetProcessesByName("Excel"))
process.Kill();
}
}
Response.Write("Successfully!");
}
资料来源:
http://www.c-sharpcorner.com/Blogs/10767/generate-excel-with-multiple-sheet-from-dataset.aspx
第二种方法:
2. 发生转换的方法
protected void Button1_Click(object sender, EventArgs e)
{
using (SqlConnection conn = new SqlConnection(ConfigurationManager.ConnectionStrings["DemosDatabaseConnectionString"].ConnectionString))
{
DataSet ds = new System.Data.DataSet(); string sql1 = "select * from Customers";
SqlDataAdapter sda1 = new SqlDataAdapter(sql1, conn);
sda1.Fill(ds, "Table1"); string sql2 = "select * from Users";
SqlDataAdapter sda2 = new SqlDataAdapter(sql2, conn);
sda2.Fill(ds, "Table2"); string sq3 = "select * from AccordionContent";
SqlDataAdapter sda3 = new SqlDataAdapter(sq3, conn);
sda3.Fill(ds, "Table3"); var excel = new Microsoft.Office.Interop.Excel.Application();
var workbook = excel.Workbooks.Add(true); AddExcelSheet(ds.Tables[], workbook);
AddExcelSheet(ds.Tables[], workbook); workbook.SaveAs(@"D:\MyExcelWorkBook2.xls");
workbook.Close(); } }
资料来源:
转换DataSet中的多个表为Excel中的多个Sheets的更多相关文章
- 如何使用免费控件将Word表格中的数据导入到Excel中
我通常使用MS Excel来存储和处理大量数据,但有时候经常会碰到一个问题—我需要的数据存储在word表格中,而不是在Excel中,这样处理起来非常麻烦,尤其是在数据比较庞大的时候, 这时我迫切地需要 ...
- c#.net循环将DataGridView中的数据赋值到Excel中,并设置样式
Microsoft.Office.Interop.Excel.Application excel = new Microsoft.Office.Interop.Excel ...
- phpexcel的写操作将数据库中的数据导入到excel中
这个版本据说是可以支持excel2007,但是我使用2007编辑的xlsx是无法获得该库的支持.于是乎我就将它转化为2003.感觉支持地很好. 下面介绍一下具体的使用: require_once('. ...
- 将Datagridview中的数据导出至Excel中
首先添加一个模块ImportToExcel,并添加引用 然后导入命名空间: Imports Microsoft.Office.Interop Imports System.Da ...
- 如何将存储在MongoDB数据库中的数据导出到Excel中?
将MongoDB数据库中的数据导出到Excel中,只需以下几个步骤: (1)首先,打开MongoDB安装目录下的bin文件夹,(C:\Program Files (x86)\MongoDB\Serve ...
- 小技巧之“将Text文件中的数据导入到Excel中,这里空格为分割符为例”
1.使用场景 将数据以文本导出后,想录入到Excel中,的简便方案, 起因:对于Excel的导出,Text导出明显会更方便些 2.将Text文件中的数据导入到Excel中,这里空格为分割符为例的步骤 ...
- Excel中如何匹配另外一个Excel中的数据
场景: 我在Excel中想展示通过一列匹配到另外Excel中的数据.对于程序员来说,就是left join 出 B表的数据. 但是在Excel中怎么做呢,我又不想每次都在把数据导入到数据库中操作. 这 ...
- [转] JAVA中读取网络中的图片资源导入到EXCEL中
需求 导出人员的信息并且加上人员的照片至EXCEL中 完整的代码 //创建一个表格 HSSFWorkbook wb = new HSSFWorkbook(); HSSFSheet sheet = wb ...
- JS将页面中表格,导出到Excel中(IE中)
原文地址:http://blog.csdn.net/sinat_15114467/article/details/51098522 var idTmr; function getExplorer() ...
随机推荐
- bzoj 2542: [Ctsc2001]终极情报网 费用流
题目链接 2542: [Ctsc2001]终极情报网 Time Limit: 1 Sec Memory Limit: 128 MBSubmit: 321 Solved: 125[Submit][S ...
- Cortex-M3动态加载三(模块调用系统函数)
在我的arm动态加载实验中需要解决一个模块调用系统函数的问题,可以使用以下的一个方法.将系统函数固定在某一段地址空间,然后导出这一块的符号表到符号文件中,要记载的模块link的时候使用这个符号表文件, ...
- Thread-safety with regular expressions in Java
As mentioned in our introduction to the Pattern and Matcher classes, the Java regular expression API ...
- WM_SYSCOMMAND包括很多功能,比如:拖动左边框、拖动标题栏、滚动条滚动、点击最小化、双击标题栏——Delphi 通过事件代替了大部分常用的消息,所以Delphi 简单、易用、高效
procedure TForm1.WMSysCommand(var Message: TWMSysCommand); var str: string; begin case Message.CmdTy ...
- Select XML Nodes by Name [C#]
原文 http://www.csharp-examples.net/xml-nodes-by-name/ To find nodes in an XML file you can use XPath ...
- .NET(C#):觉察XML反序列化中的未知节点
原文 www.cnblogs.com/mgen/archive/2011/12/12/2284554.html 众所周知XML是可以扩展的,XML的元素可以靠名称识别而不是只按照未知识别.在 XML反 ...
- API各函数作用简介
API各函数作用简介 1.控件与消息函数 AdjustWindowRect 给定一种窗口样式,计算获得目标客户区矩形所需的窗口大小 AnyPopup 判断屏幕上是否存在任何弹出式窗口 ArrangeI ...
- php抽象类和接口
接口 使用接口,你可以指定某个类必须实现那些方法,但是不需要定义这些方法的具体内容,我们可以通过interface来定义一个接口,就像定义标准类一样,但其中定义所有的方法都是空的,接口中定义的所有的方 ...
- AppStore被拒原因及总结
4.5 - Apps using background location services must provide a reason that clarifies the purpose of th ...
- iOS 面试题:OC基本概念题
1.什么是类和对象? 类是一组具有同样特征和功能的事物的抽象 对象描写叙述了一个物体的特征和行为实现 类是对象的抽象 对象是类的实例 2.OC中定义类,创建对象,使用对象. OC中定义类分为接口部分, ...