小弟正在维护一个系统,系统里有个数据导出的功能,将一些信息读出来之后先显示在gridview中,然后可以按多种方式将gridview中的数据导入到excel中,其中可以按月份、年、季度导入到excel中。
问题如下:
比如可以将10月份的数据导出到excel中,速度也还可以;但是如果按季度导入到excel中,浏览器的进度条总是在大概1/3处卡住不动了,卡了几十分钟了。月份的记录大概200多条,按季度查出来的数据有900多条。
大概情况就是这样,求大虾指点excel导出
问题如下:
比如可以将10月份的数据导出到excel中,速度也还可以;但是如果按季度导入到excel中,浏览器的进度条总是在大概1/3处卡住不动了,卡了几十分钟了。月份的记录大概200多条,按季度查出来的数据有900多条。
大概情况就是这样,求大虾指点excel导出
解决方案 »
- 更新数据后返回原页面
- ASP.NET 菜单按钮变灰
- asp.net 2003配置 nhibernate问题。。
- C#中的事件如何实现...?
- 求一个简单的正则表达式
- 哪位高手知道调试和运行的时候得到的值不一样是怎么回事???
- 超级简单问题,在线急等。。。。。。
- 在dateview排序的问题,疑惑,请教下!
- 怎样通过.net的dataset方法在内存中建立一个当天用到的数据存放的数据库?
- ****高分求助!!!怎么才能控制网页向前退到哪一页??一退就到登陆页面可以吗?谢谢!
- Gridview绑定数据,哪种方法效率高?数据控件还是IEnumerable (Of T)
- MVC在cshmtl中指定Controller和Action的问题~
//导出excel文件
protected void btn_down_Click(object sender, EventArgs e)
{
//转成Excel并保存在附件目录下
System.Data.DataTable dt = getDataTable(); GetExcel(dt, title);
GridView1.Visible = true;
String proj_no = (String)Session["proj_no"];
string filename = "计价监管通知书" + Label4.Text.ToString().Substring(5, Label4.Text.ToString().Length - 5) + "台账表";
String filePath = Server.MapPath("~/proj_info" + "//" + filename + ".xls");
FileInfo fi = new FileInfo(filePath);
if (fi.Exists)
{
HttpResponse contextResponse = HttpContext.Current.Response;
contextResponse.Redirect(string.Format("~/proj_info/{0}", "//" + filename + ".xls"), false);
}
else
{
Response.Write("<script>alert('此文件不存在,不能下载!')</script>");
} } 生成excel
private void GetExcel(System.Data.DataTable dt, string name)
{
int col = dt.Columns.Count;
int row = dt.Rows.Count; Microsoft.Office.Interop.Excel.Application app = new Microsoft.Office.Interop.Excel.Application();//Excel表格
app.Visible = false;
Workbooks workbooks = app.Workbooks;
_Workbook workbook = workbooks.Add(XlWBATemplate.xlWBATWorksheet);
Sheets sheets = workbook.Worksheets;//新建工作页 _Worksheet worksheet = (_Worksheet)sheets.get_Item(1); worksheet.Cells.NumberFormatLocal = "@";
Range rangeTitle = worksheet.get_Range(worksheet.Cells[1, 1], worksheet.Cells[1, col]);
rangeTitle.Merge(0);
rangeTitle.HorizontalAlignment = XlHAlign.xlHAlignCenter;
rangeTitle.Font.Size = 16;
rangeTitle.Font.Bold = true;
rangeTitle.Value2 = name; Range rangeData = worksheet.get_Range(worksheet.Cells[2, 1], worksheet.Cells[2, col]);
rangeData.Merge(0);
rangeData.HorizontalAlignment = XlHAlign.xlHAlignCenter;
rangeData.Font.Size = 12;
rangeData.Value2 = Label4.Text;
for (int i = 0; i < dt.Columns.Count; i++)
{
string col_name = dt.Columns[i].Caption.ToString();
switch (col_name)
{
case "序号":
worksheet.get_Range(worksheet.Cells[3, i + 1], worksheet.Cells[3, i + 1]).Merge(0);
worksheet.get_Range(worksheet.Cells[3, i + 1], worksheet.Cells[3, i + 1]).HorizontalAlignment = XlHAlign.xlHAlignCenter;
worksheet.get_Range(worksheet.Cells[3, i + 1], worksheet.Cells[3, i + 1]).ColumnWidth = 5;
worksheet.get_Range(worksheet.Cells[3, i + 1], worksheet.Cells[3, i + 1]).Value2 = "序号"; break;
case "委托单位":
worksheet.get_Range(worksheet.Cells[3, i + 1], worksheet.Cells[3, i + 1]).Merge(0);
worksheet.get_Range(worksheet.Cells[3, i + 1], worksheet.Cells[3, i + 1]).HorizontalAlignment = XlHAlign.xlHAlignCenter;
worksheet.get_Range(worksheet.Cells[3, i + 1], worksheet.Cells[3, i + 1]).ColumnWidth = 10;
worksheet.get_Range(worksheet.Cells[3, i + 1], worksheet.Cells[3, i + 1]).Value2 = "委托单位"; break;
case "咨询单位":
worksheet.get_Range(worksheet.Cells[3, i + 1], worksheet.Cells[3, i + 1]).Merge(0);
worksheet.get_Range(worksheet.Cells[3, i + 1], worksheet.Cells[3, i + 1]).HorizontalAlignment = XlHAlign.xlHAlignCenter;
worksheet.get_Range(worksheet.Cells[3, i + 1], worksheet.Cells[3, i + 1]).ColumnWidth = 10;
worksheet.get_Range(worksheet.Cells[3, i + 1], worksheet.Cells[3, i + 1]).Value2 = "咨询单位"; break;
case "工程名称":
worksheet.get_Range(worksheet.Cells[3, i + 1], worksheet.Cells[3, i + 1]).Merge(0);
worksheet.get_Range(worksheet.Cells[3, i + 1], worksheet.Cells[3, i + 1]).HorizontalAlignment = XlHAlign.xlHAlignCenter;
worksheet.get_Range(worksheet.Cells[3, i + 1], worksheet.Cells[3, i + 1]).ColumnWidth = 10;
worksheet.get_Range(worksheet.Cells[3, i + 1], worksheet.Cells[3, i + 1]).Value2 = "工程名称"; break;
case "工程地点":
worksheet.get_Range(worksheet.Cells[3, i + 1], worksheet.Cells[3, i + 1]).Merge(0);
worksheet.get_Range(worksheet.Cells[3, i + 1], worksheet.Cells[3, i + 1]).HorizontalAlignment = XlHAlign.xlHAlignCenter;
worksheet.get_Range(worksheet.Cells[3, i + 1], worksheet.Cells[3, i + 1]).ColumnWidth = 10;
worksheet.get_Range(worksheet.Cells[3, i + 1], worksheet.Cells[3, i + 1]).Value2 = "工程地点"; break;
case "投资额":
worksheet.get_Range(worksheet.Cells[3, i + 1], worksheet.Cells[3, i + 1]).Merge(0);
worksheet.get_Range(worksheet.Cells[3, i + 1], worksheet.Cells[3, i + 1]).HorizontalAlignment = XlHAlign.xlHAlignCenter;
worksheet.get_Range(worksheet.Cells[3, i + 1], worksheet.Cells[3, i + 1]).ColumnWidth = 10;
worksheet.get_Range(worksheet.Cells[3, i + 1], worksheet.Cells[3, i + 1]).Value2 = "投资额"; break;
case "建设规模":
worksheet.get_Range(worksheet.Cells[3, i + 1], worksheet.Cells[3, i + 1]).Merge(0);
worksheet.get_Range(worksheet.Cells[3, i + 1], worksheet.Cells[3, i + 1]).HorizontalAlignment = XlHAlign.xlHAlignCenter;
worksheet.get_Range(worksheet.Cells[3, i + 1], worksheet.Cells[3, i + 1]).ColumnWidth = 10;
worksheet.get_Range(worksheet.Cells[3, i + 1], worksheet.Cells[3, i + 1]).Value2 = "建设规模"; break;
case "资质咨询证号":
worksheet.get_Range(worksheet.Cells[3, i + 1], worksheet.Cells[3, i + 1]).Merge(0);
worksheet.get_Range(worksheet.Cells[3, i + 1], worksheet.Cells[3, i + 1]).HorizontalAlignment = XlHAlign.xlHAlignCenter;
worksheet.get_Range(worksheet.Cells[3, i + 1], worksheet.Cells[3, i + 1]).ColumnWidth = 15;
worksheet.get_Range(worksheet.Cells[3, i + 1], worksheet.Cells[3, i + 1]).Value2 = "资质咨询证号"; break;
case "资质咨询等级":
worksheet.get_Range(worksheet.Cells[3, i + 1], worksheet.Cells[3, i + 1]).Merge(0);
worksheet.get_Range(worksheet.Cells[3, i + 1], worksheet.Cells[3, i + 1]).HorizontalAlignment = XlHAlign.xlHAlignCenter;
worksheet.get_Range(worksheet.Cells[3, i + 1], worksheet.Cells[3, i + 1]).ColumnWidth = 15;
worksheet.get_Range(worksheet.Cells[3, i + 1], worksheet.Cells[3, i + 1]).Value2 = "资质咨询等级"; break;
case "编制时间1":
worksheet.get_Range(worksheet.Cells[3, i + 1], worksheet.Cells[3, i + 1]).Merge(0);
worksheet.get_Range(worksheet.Cells[3, i + 1], worksheet.Cells[3, i + 1]).HorizontalAlignment = XlHAlign.xlHAlignCenter;
worksheet.get_Range(worksheet.Cells[3, i + 1], worksheet.Cells[3, i + 1]).ColumnWidth = 15;
worksheet.get_Range(worksheet.Cells[3, i + 1], worksheet.Cells[3, i + 1]).Value2 = "编制时间1"; break;
case "编制时间2":
worksheet.get_Range(worksheet.Cells[3, i + 1], worksheet.Cells[3, i + 1]).Merge(0);
worksheet.get_Range(worksheet.Cells[3, i + 1], worksheet.Cells[3, i + 1]).HorizontalAlignment = XlHAlign.xlHAlignCenter;
worksheet.get_Range(worksheet.Cells[3, i + 1], worksheet.Cells[3, i + 1]).ColumnWidth = 15;
worksheet.get_Range(worksheet.Cells[3, i + 1], worksheet.Cells[3, i + 1]).Value2 = "编制时间2"; break;
case "咨询费":
worksheet.get_Range(worksheet.Cells[3, i + 1], worksheet.Cells[3, i + 1]).Merge(0);
worksheet.get_Range(worksheet.Cells[3, i + 1], worksheet.Cells[3, i + 1]).HorizontalAlignment = XlHAlign.xlHAlignCenter;
worksheet.get_Range(worksheet.Cells[3, i + 1], worksheet.Cells[3, i + 1]).ColumnWidth = 15;
worksheet.get_Range(worksheet.Cells[3, i + 1], worksheet.Cells[3, i + 1]).Value2 = "咨询费"; break;
case "核准内容":
worksheet.get_Range(worksheet.Cells[3, i + 1], worksheet.Cells[3, i + 1]).Merge(0);