VS2005 C#下,想读取sql数据库某个表中的数据,真接以EXCEL表格形式显示在窗体中!该如何操作呢?求大家帮帮忙!
解决方案 »
- 如何进行反序列化复杂对象中包含IList成员?
- 怎么把一个数据集里面的数据添加到数据库
- WinForm中如何将网站上的内容下载到本地
- treeview问题
- 如何把数据库中字段显示为日期类型就是在数据库中是字符类型的,显示在报表中改为只有时间格式而不显示日期的类型?
- 求高手帮我解决一下TIMER类的问题
- c#客户端用protobuf序列化的时间很长
- 关于循环冗余CRC校验问题求教
- 求助!!哪位兄台有现成的asp.net、ado.net、c#开发方面的测试题?
- XCopy是什么意思,为什么我下载一个ASPX和一个DLL文件放在一些为什么不能运行。
- 关于C#联接SQL Server 2000 数据库 程序设计的疑问
- c#中的某些item属性不能使用
string sql=" select * from Table:; SqlConnection conn=new SqlConnection("server=.;database= ;uid=sa;pwd=123");
SqlDataAdapter sda = new SqlDataAdapter(sql, con);
sda.Fill(dt);
dataGridView1.DataSource = dt; //OK
还是你要将数据导出到XLS中去?
直接导出Excle
把EXECL嵌到你的程序中去?这个貌似又太高深了。。
先制作一个excel的模板文件,将数据表中的信息导入到excel中,然后在程序中执行Process.Start()方法,直接打开你所保存的excel文件,这样就可以直接把excel本身程序给启动了
1.首先读取sql的数据显示到DataGridView中,
2.将数据然后导入到excel中。第一步的代码不用了吧。
第二步的代码: //保存到Excel
public void SaveDataTableToExcel(System.Data.DataTable excelTable,string filePath)
{
Microsoft.Office.Interop.Excel.Application app =
new Microsoft.Office.Interop.Excel.ApplicationClass();
try
{
//让后台执行设置为不可见
app.Visible = false;
//新增加一个工作簿
Workbook wBook = app.Workbooks.Add(true);
//如果要打开已有的工作簿,则使用下面的注释语句
// Workbook wBook = app.Workbooks.Open(@"C:\YourPath\YourWorkbook.xls",
// missing, missing, missing, missing, missing, missing, missing,
// missing, missing, missing, missing, missing,missing, missing); //取得一个工作表
//如果打开了已有的工作簿,也可以这样获取工作表Worksheet wSheet = wBook.ActiveSheet as Worksheet
Worksheet wSheet = wBook.Worksheets[1] as Worksheet;
if (excelTable.Rows.Count > 0)
{
int row = 0;
row = excelTable.Rows.Count;
int col = excelTable.Columns.Count;
allsize = row; for (int i = 0; i < row; i++)
{
succeesize++;
prograsssize++;
for (int j = 0; j < col; j++)
{
string str = excelTable.Rows[i][j].ToString();
wSheet.Cells[i + 1, j + 1] = str;
}
SetMessageText();
}
} int size = excelTable.Columns.Count;
for (int i = 0; i < size; i++)
{
wSheet.Cells[1, 1 + i] = excelTable.Columns[i].ColumnName;
} //设置禁止弹出保存和覆盖的询问提示框
app.DisplayAlerts = false;
app.AlertBeforeOverwriting = false;
//保存工作簿
wBook.Save();
//保存excel文件
app.Save(filePath + "\\导出excel.xls");
}
catch(Exception err)
{
MessageBox.Show("导入Excel出错!错误原因:"+ err.Message, "错误信息",
MessageBoxButtons.OK, MessageBoxIcon.Information);
}
finally
{
//确保Excel进程关闭
app.Quit();
app = null;
}
SetCancelUse();
}
需要修改的地方是app.Visible参数(或类似参数,记得不是很清楚)要置为true,并确保显示过程中不执行Quit()方法,否则代码执行后就是直接在后台生成一个excel文件,不会在活动桌面为用户显示数据。
动作2:添加一个空页面,在Pageload里加上
我刚写的:
Response.ContentType = "Application/vnd.ms-excel";//X-msexcel
string FilePath = MapPath("合同管理改善0908.xls");
Response.WriteFile(FilePath);
Response.End();
这样,调这个页面,就把EXCEL加到嵌套在你的页面里了。把数据导出到EXCEL,满简单,
就是要多出一个提示保存。不是很直观。