数据导出到excel模板 100分 求救啊!!!
要将数据库中的数据导出到excel模板中 C#2005 SQL 2005 经理要做成通用的组件,。。。。
而且数据可能不在一个表中 比如一个表里存的是一个数据的代码而另一个表里存的是汉字
哪位仁兄 给个完整的例子啊 !!!!!!
------解决方案--------------------将数据库中的数据导出到excel模板中 这个还知道,但是要做成通用的组件,。。。。
而且数据可能不在一个表中 比如一个表里存的是一个数据的代码而另一个表里存的是汉字
这句话偶看不懂,你是要什么样。。的
------解决方案--------------------把我后面发的这些写到一个类里面,引用一下,前面的那段就能用了~~~
------解决方案--------------------俺不会表达,只能这样乱发一通了
------解决方案--------------------给他发邮箱不得了
------解决方案--------------------先用一个表存放要导入到excel的字段,
设计表字段如下:
报表名称,视图(表)名,字段名,中文名,行号,列号,对齐方式,小数位数,汇总行,是否列表,表尾汇总,等等你想要设置的
在写一个方法去读相应的添到excel中,如下
方法getDnum()为保留小数位数格式设定,自己根据情况可以自己写一个
/// <summary>
/// 打印导出Excel
/// </summary>
/// <param name="dt"> 要打印的Datatable</param>
/// <param name="rptname">模版中的Excel的名称</param>
public static void printexcel(System.Data.DataTable dt, string rptname)
{
string adress = System.Web.HttpContext.Current.Server.MapPath("~\\REPORT" + "\\" + rptname + ".xls");
if (!File.Exists(adress))
{
System.Web.HttpContext.Current.Response.Write("<script>alert('模版中不存在要打印的模版,请先设置要打印的模版')</script>");
}
else
{
Excel.ApplicationClass myApp = null;
Excel.Workbook myBook = null;
Excel.Worksheet mySheet = null;
myApp = new ApplicationClass();
myApp.Visible = false;
//如果文件不存在,则将模板文件拷贝一份作为输出文件
if (File.Exists(outFilePath))
{
try
{
File.Delete(outFilePath);
}
catch
{
throw;
}
}
File.Copy(adress, outFilePath, true);
File.SetAttributes("C:\\myexcel.xls", FileAttributes.Normal);
//写入Excel时,要用到的。
//myBook = (Excel.WorkbookClass)myApp.Workbooks.Add(System.Reflection.Missing.Value);
object oMissiong = System.Reflection.Missing.Value;
myApp.Workbooks.Open(outFilePath, oMissiong, oMissiong, oMissiong, oMissiong,
oMissiong, oMissiong, oMissiong, oMissiong, oMissiong, oMissiong, oMissiong,
oMissiong, oMissiong, oMissiong);
myBook = myApp.Workbooks[1];
mySheet = (Worksheet)myBook.ActiveSheet;
ClothesERP.SQLServerDAL.Excelset exc = new ClothesERP.SQLServerDAL.Excelset();
int j = 0;
IList<ClothesERP.Model.Excelset> list = exc.GetListArray("rptname='" + rptname + "'");
foreach (ClothesERP.Model.Excelset ex in list)
{
j = 0;
string countstring = "";
Double countnum = 0;
for (int i = 0; i < dt.Rows.Count; i++)
{
if (ex.Is_list && i == 0)
{
if (dt.Rows[i][ex.Field_name.ToString()].GetType() == System.Type.GetType("System.String"))