net中操作excel.如何动态添加多个工作表 net中操作excel时,请问如何动态添加多个工作表,并填充数据 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 .NET操作excel最好用VB.NET写添加工作表就是sheets.add方法 oledbcreate tableinsert 前段时间乱写的.估计你能用上..动态添加sheetexcel.Sheets.Add(Type.Missing, workSheet, Type.Missing, Type.Missing);//这个是添加sheetlz看一下吧..public void CreateExcelFile(string path, string orBatchid, string batchName) { DataSet ds = prm.GetExportToExcelData(Convert.ToInt32(orBatchid)); Excel.ApplicationClass excel = new Excel.ApplicationClass(); Excel.Worksheet workSheet; excel.Application.Workbooks.Add(true); if (ds.Tables[0].Rows.Count == ds.Tables.Count - 1) { for (int i = 0; i < ds.Tables[0].Rows.Count; i++)//sheet name { workSheet = (Excel.Worksheet)excel.Sheets.get_Item(i + 1); workSheet.Name = ds.Tables[0].Rows[i][0].ToString() + "_" + ds.Tables[0].Rows[i][1].ToString();//sheet name int rowIndex = 1; int colIndex = 0; foreach (DataColumn col in ds.Tables[i + 1].Columns)// fill table column { colIndex++; workSheet.Cells[1, colIndex] = col.ColumnName; } workSheet.Cells[1, ++colIndex] = ds.Tables[0].Rows[i][0].ToString() + " " + ds.Tables[0].Rows[i][1].ToString(); foreach (DataRow row in ds.Tables[i + 1].Rows)//fill data { rowIndex++; colIndex = 0; foreach (DataColumn col in ds.Tables[i + 1].Columns) { colIndex++; workSheet.Cells[rowIndex, colIndex] = row[col.ColumnName].ToString(); } } workSheet.Cells[rowIndex + 2, 1] = "---------End of Data---------"; workSheet.Cells.Font.Name = "Arial"; workSheet.Cells.Font.Size = 10; workSheet.Cells.EntireColumn.AutoFit(); if (i < ds.Tables[0].Rows.Count - 1) { excel.Sheets.Add(Type.Missing, workSheet, Type.Missing, Type.Missing); } } excel.Visible = false; excel.DisplayAlerts = false; excel.ActiveWorkbook.SaveAs(path + "\\" + batchName + DateTime.Now.ToString("yyyyMMdd"), Excel.XlFileFormat.xlExcel7, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Excel.XlSaveAsAccessMode.xlNoChange, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing); excel.Quit(); excel = null; GC.Collect(); } } 将DataTable转换成List<T>有什么好处啊? Asp.net做单点登陆 做过手机上网的朋友,请教个问题!! 在web.config中设置了最大连接数400,但是没有起作用?? 谁改写过只设置panel的水平滚动条为自动的控件? vs2003中如何制作网站导航条 网页中如何控制音乐的播放? 为何使用 RegisterStartupScript 发出的代码不能执行? 怎样实现datagrid的循环显示?请帮我一下,先谢谢了!!昨天问过但没有人回答. 关于上传文本文件(HtmlInputFile),字节如何转为字符?? C1WEBGRID的问题 引用问题~
添加工作表就是sheets.add方法
create table
insert
lz看一下吧..
public void CreateExcelFile(string path, string orBatchid, string batchName)
{
DataSet ds = prm.GetExportToExcelData(Convert.ToInt32(orBatchid)); Excel.ApplicationClass excel = new Excel.ApplicationClass();
Excel.Worksheet workSheet;
excel.Application.Workbooks.Add(true); if (ds.Tables[0].Rows.Count == ds.Tables.Count - 1)
{
for (int i = 0; i < ds.Tables[0].Rows.Count; i++)//sheet name
{
workSheet = (Excel.Worksheet)excel.Sheets.get_Item(i + 1);
workSheet.Name = ds.Tables[0].Rows[i][0].ToString() + "_" + ds.Tables[0].Rows[i][1].ToString();//sheet name int rowIndex = 1;
int colIndex = 0; foreach (DataColumn col in ds.Tables[i + 1].Columns)// fill table column
{
colIndex++;
workSheet.Cells[1, colIndex] = col.ColumnName;
}
workSheet.Cells[1, ++colIndex] = ds.Tables[0].Rows[i][0].ToString() + " " + ds.Tables[0].Rows[i][1].ToString(); foreach (DataRow row in ds.Tables[i + 1].Rows)//fill data
{
rowIndex++;
colIndex = 0;
foreach (DataColumn col in ds.Tables[i + 1].Columns)
{
colIndex++;
workSheet.Cells[rowIndex, colIndex] = row[col.ColumnName].ToString();
}
} workSheet.Cells[rowIndex + 2, 1] = "---------End of Data---------";
workSheet.Cells.Font.Name = "Arial";
workSheet.Cells.Font.Size = 10;
workSheet.Cells.EntireColumn.AutoFit(); if (i < ds.Tables[0].Rows.Count - 1)
{
excel.Sheets.Add(Type.Missing, workSheet, Type.Missing, Type.Missing);
}
} excel.Visible = false;
excel.DisplayAlerts = false;
excel.ActiveWorkbook.SaveAs(path + "\\" + batchName + DateTime.Now.ToString("yyyyMMdd"), Excel.XlFileFormat.xlExcel7, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Excel.XlSaveAsAccessMode.xlNoChange, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing);
excel.Quit();
excel = null;
GC.Collect();
}
}