個人最近做的最多的重複工作就是excel导出
//导出事件,这个是有合并动态列的 double num1 = 0, num2 = 0, num3 = 0;
protected void btnExcel_Click(object sender, ImageClickEventArgs e)
{
num1 = 0; num2 = 0; num3 = 0;
DirectoryInfo fdir = new DirectoryInfo(Server.MapPath(@"\TmpReport"));
FileInfo[] files = fdir.GetFiles();
for (int i = 0; i < files.Length - 1; i++)
{
if (files[i].Name.IndexOf("tmp") >= 0)
{
try
{
files[i].Delete();
}
catch (Exception ex)
{
}
}
}
string time = DateTime.Now.ToString("yyyyMMddHHmmss");
FileInfo fi = new FileInfo(Server.MapPath(@"\Excel\每日信貸報告.xls"));
fi.CopyTo(Server.MapPath(@"\TmpReport\tmp" + time + ".xls"));
Microsoft.Office.Interop.Excel.Application xlApp = new Microsoft.Office.Interop.Excel.Application();
Microsoft.Office.Interop.Excel.Workbooks workbooks = xlApp.Workbooks;
Microsoft.Office.Interop.Excel.Workbook xlBook = workbooks.Add(Microsoft.Office.Interop.Excel.XlWBATemplate.xlWBATWorksheet);
Microsoft.Office.Interop.Excel.Worksheet xlSheet = new Microsoft.Office.Interop.Excel.Worksheet();
xlBook = xlApp.Workbooks.Open(Server.MapPath(@"\TmpReport\tmp" + time + ".xls"));
xlSheet = (Microsoft.Office.Interop.Excel.Worksheet)xlBook.Worksheets.get_Item(1);
int tmpid = 2;
string rowSheet = "";
string 可簽額 = "";
string 戶主名 = "";
int count1 = 2;
int count2 = 2;
int Colorindex = 0;
for (int i = 0; i < dtList.Rows.Count; i++)
{
string rowSheet1 = Convert.ToString(dtList.Rows[i]["戶號"]);
if (rowSheet1 == rowSheet)
{
//xlSheet.Cells[tmpid, 1] = "";
//xlSheet.Cells[tmpid, 2] = "";
//xlSheet.Cells[tmpid, 3] = "";
}
else
{
if (rowSheet != "")
{
Microsoft.Office.Interop.Excel.Range integral = (Microsoft.Office.Interop.Excel.Range)xlSheet.get_Range("A" + count1, "A" + (count2 - 1));
integral.MergeCells = true;
integral.Value = 可簽額;
integral.Font.Size = 16;
integral.HorizontalAlignment = Microsoft.Office.Interop.Excel.XlHAlign.xlHAlignCenter;
integral.VerticalAlignment = Microsoft.Office.Interop.Excel.XlVAlign.xlVAlignCenter;
Microsoft.Office.Interop.Excel.Range integral1 = (Microsoft.Office.Interop.Excel.Range)xlSheet.get_Range("B" + count1, "B" + (count2 - 1));
integral1.MergeCells = true;
integral1.Value = rowSheet;
integral1.Font.Size = 16;
// integral1.HorizontalAlignment = Microsoft.Office.Interop.Excel.XlVAlign.xlVAlignCenter;
integral1.HorizontalAlignment = Microsoft.Office.Interop.Excel.XlHAlign.xlHAlignCenter;
integral1.VerticalAlignment = Microsoft.Office.Interop.Excel.XlVAlign.xlVAlignCenter;
Microsoft.Office.Interop.Excel.Range integral2 = (Microsoft.Office.Interop.Excel.Range)xlSheet.get_Range("C" + count1, "C" + (count2 - 1));
integral2.MergeCells = true;
integral2.Value = 戶主名;
integral2.Font.Size = 16;
integral2.HorizontalAlignment = Microsoft.Office.Interop.Excel.XlHAlign.xlHAlignCenter;
integral2.VerticalAlignment = Microsoft.Office.Interop.Excel.XlVAlign.xlVAlignCenter;
Colorindex = 15;
if (Colorindex != 0)
{
Microsoft.Office.Interop.Excel.Range integrals = (Microsoft.Office.Interop.Excel.Range)xlSheet.get_Range("a" + tmpid, "I" + tmpid);
integrals.Interior.ColorIndex = 15;
Colorindex = 0;
}
count2++;
tmpid++;
count1 = count2;
//xlSheet.Cells[tmpid, 1] = dtList.Rows[i]["可簽額"];
//xlSheet.Cells[tmpid, 2] = dtList.Rows[i]["戶號"];
//xlSheet.Cells[tmpid, 3] = dtList.Rows[i]["戶主名"];
}
rowSheet = rowSheet1;
可簽額 = Convert.ToString(dtList.Rows[i]["可簽額"]);
戶主名 = Convert.ToString(dtList.Rows[i]["戶主名"]);
}
num1 += Convert.ToDouble(dtList.Rows[i]["貸款額"].ToString());
num2 += Convert.ToDouble(dtList.Rows[i]["還款額"].ToString());
num3 += Convert.ToDouble(dtList.Rows[i]["餘額"].ToString());
xlSheet.Cells[tmpid, 4] = dtList.Rows[i]["借款人"];
xlSheet.Cells[tmpid, 5] = dtList.Rows[i]["單編號"];
double a = Convert.ToDouble(dtList.Rows[i]["貸款額"].ToString());
double b = Convert.ToDouble(dtList.Rows[i]["還款額"].ToString());
double c = Convert.ToDouble(dtList.Rows[i]["餘額"].ToString());
string aStr = "", bStr = "", cStr = "";
if (a != 0)
{
aStr = a.ToString("#,##0.####");
}
if (b != 0)
{
bStr = b.ToString("#,##0.####");
}
if (c != 0)
{
cStr = c.ToString("#,##0.####");
}
xlSheet.Cells[tmpid, 6] = aStr;
xlSheet.Cells[tmpid, 7] = bStr;
xlSheet.Cells[tmpid, 8] = cStr;
xlSheet.Cells[tmpid, 9] = dtList.Rows[i]["下單號"];
tmpid = tmpid + 1;
count2++;
}
Microsoft.Office.Interop.Excel.Range integral3 = (Microsoft.Office.Interop.Excel.Range)xlSheet.get_Range("A" + count1, "A" + (count2 - 1));
integral3.MergeCells = true;
integral3.Value = 可簽額;
integral3.Font.Size = 16;
integral3.HorizontalAlignment = Microsoft.Office.Interop.Excel.XlHAlign.xlHAlignCenter;
integral3.VerticalAlignment = Microsoft.Office.Interop.Excel.XlVAlign.xlVAlignCenter;
Microsoft.Office.Interop.Excel.Range integral4 = (Microsoft.Office.Interop.Excel.Range)xlSheet.get_Range("B" + count1, "B" + (count2 - 1));
integral4.MergeCells = true;
integral4.Value = rowSheet;
integral4.Font.Size = 16;
integral4.HorizontalAlignment = Microsoft.Office.Interop.Excel.XlHAlign.xlHAlignCenter;
integral4.VerticalAlignment = Microsoft.Office.Interop.Excel.XlVAlign.xlVAlignCenter;
Microsoft.Office.Interop.Excel.Range integral5 = (Microsoft.Office.Interop.Excel.Range)xlSheet.get_Range("C" + count1, "C" + (count2 - 1));
integral5.MergeCells = true;
integral5.Value = 戶主名;
integral5.Font.Size = 16;
integral5.HorizontalAlignment = Microsoft.Office.Interop.Excel.XlHAlign.xlHAlignCenter;
integral5.VerticalAlignment = Microsoft.Office.Interop.Excel.XlVAlign.xlVAlignCenter;
//獲取行
Microsoft.Office.Interop.Excel.Range rg = (Microsoft.Office.Interop.Excel.Range)xlSheet.Cells[tmpid, 1];
rg = (Microsoft.Office.Interop.Excel.Range)xlSheet.Cells[tmpid, 1];
rg.Interior.ColorIndex = 15;
rg = (Microsoft.Office.Interop.Excel.Range)xlSheet.Cells[tmpid, 2];
rg.Interior.ColorIndex = 15;
rg = (Microsoft.Office.Interop.Excel.Range)xlSheet.Cells[tmpid, 3];
rg.Interior.ColorIndex = 15;
rg = (Microsoft.Office.Interop.Excel.Range)xlSheet.Cells[tmpid, 4];
rg.Interior.ColorIndex = 15;
rg = (Microsoft.Office.Interop.Excel.Range)xlSheet.Cells[tmpid, 5];
rg.Interior.ColorIndex = 15;
rg = (Microsoft.Office.Interop.Excel.Range)xlSheet.Cells[tmpid, 6];
rg.Interior.ColorIndex = 15;
rg = (Microsoft.Office.Interop.Excel.Range)xlSheet.Cells[tmpid, 7];
rg.Interior.ColorIndex = 15;
rg = (Microsoft.Office.Interop.Excel.Range)xlSheet.Cells[tmpid, 8];
rg.Interior.ColorIndex = 15;
rg = (Microsoft.Office.Interop.Excel.Range)xlSheet.Cells[tmpid, 9];
rg.Interior.ColorIndex = 15;
xlSheet.Cells[tmpid, 1] = "";
xlSheet.Cells[tmpid, 2] = "";
xlSheet.Cells[tmpid, 3] = "";
xlSheet.Cells[tmpid, 4] = "";
xlSheet.Cells[tmpid, 5] = "合計:";
xlSheet.Cells[tmpid, 6] = num1.ToString("#,##0.####");
xlSheet.Cells[tmpid, 7] = num2.ToString("#,##0.####");
xlSheet.Cells[tmpid, 8] = num3.ToString("#,##0.####");
xlSheet.SaveAs(Server.MapPath(@"\TmpReport\tmp" + time + "1.xls"));
xlBook.Close();
xlApp.Quit();
Response.Expires = 0;
Response.Clear();
Response.Buffer = true;
Response.Charset = "utf-8";
Response.ContentEncoding = System.Text.Encoding.UTF8;
Response.ContentType = "application/vnd.ms-excel";
Response.AddHeader("Content-Disposition", "attachment; filename=" + HttpUtility.UrlEncode("每日信貸報告.xls"));
Response.WriteFile(Server.MapPath(@"\TmpReport\tmp" + time + "1.xls"));
Response.Flush();
Response.Clear();
}
個人最近做的最多的重複工作就是excel导出的更多相关文章
- Oracle运维 专业的事情交给专业的人来做
关于Oracle运维的重要性,随便写了几句,放在这儿和大家共勉. Oracle数据库在RDBMS中独占熬头,07年统计其市场份额占关系数据库市场的48.6%稳居首位,而且逐年增加,上升势头强劲.在使用 ...
- [原创]浅谈IT人如何做理财规划
[原创]浅谈IT人如何做理财规划 鱼哥博客上多数写的是技术和管理相关,但很少有理财等话题,今天抽空来谈谈IT人如何做理财规划,如果要想学习理财,我想很有名的“标准普尔家庭资产象限图”上值得每个学习和理 ...
- (转)Groupon前传:从10个月的失败作品修改,1个月找到成功 并不挶泥在这个点子上面,它反而往后站一步,看看他们已经做好的这个网站,可以再怎么包装成另一个完完全全不同的网站?所有的人所做的每件失败的事情中, 一定有碰到或含有成功的答案」在里面,只是他们不知道而已。 人不怕失败」,只怕宣布失败」
(转)Groupon前传:从10个月的失败作品修改,1个月找到成功 今天读到 一个非常励志人心的故事 ,就像现在「叶问」有「前传」,最近很火红的团集购网站Groupon 也出现了「Groupon前传」 ...
- 在做excel导出时如何将excel直接写在输出流中
之前做excel导出时,我都是先将文件写在服务器上,然后再下载下来,后来发现原来可以直接将文件写在输出流里边. 下面是一个小demo: package com.huaqin.fcstrp.util; ...
- [ASP.NET] 使用Loading遮罩防止使用者重複點擊
From: http://www.dotblogs.com.tw/joysdw12/archive/2012/12/13/85629.aspx 前言 在網頁執行中可能會因為資料量大或其他原因影響使用者 ...
- 【EXCEL】簡単に重複探し
下記のような表があって.重複があるかどうか探すのが大変と思いますが. 簡単に重複探す方法を紹介します. Step1.重複を探す(例えこちらでは項目)を選択します. Step2.メニューで 条件付き書式 ...
- 平时没有怎么用Excel做 加减乘除 计算,猛地发现,其实Excel 是一个很好的简单计算器
平时没有怎么用Excel做 加减乘除 计算,猛地发现,其实Excel 是一个很好的简单计算器
- SQL Sever 刪除重複數據只剩一條
use book go create table ##T1( n int, a nvarchar(20) ) --查詢重複記錄,插入臨時表 insert into ##T1(n,a) select s ...
- 为啥我做的RFM模型被人说做错了,我错哪了?
本文转自知乎 作者:接地气的陈老师 ————————————————————————————————————————————————————— 有同学问:“为啥我做的RFM模型被客户/业务部门批斗,说 ...
随机推荐
- create-maximum-number(难)
https://leetcode.com/problems/create-maximum-number/ 这道题目太难了,花了我很多时间.最后还是参考了别人的方法.还少加了个greater方法.很难. ...
- 【Todo】字符串相关的各种算法,以及用到的各种数据结构,包括前缀树后缀树等各种树
另开一文分析字符串相关的各种算法,以及用到的各种数据结构,包括前缀树后缀树等各种树. 先来一个汇总, 算法: 本文中提到的字符串匹配算法有:KMP, BM, Horspool, Sunday, BF, ...
- Android无法访问本地服务器(localhost)的解决方案
在Android开发中通过localhost或127.0.0.1访问本地服务器时,会报java.net.ConnectException: localhost/127.0.0.1:8083 -Conn ...
- Android View绘制流程
框架分析 在之前的下拉刷新中,小结过触屏消息先到WindowManagerService(Wms)然后顺次传递给ViewRoot(派生自Handler),经decor view到Activity再传递 ...
- 一些数论概念与算法——从SGU261谈起
话说好久没来博客上面写过东西了,之前集训过于辛苦了,但有很大的收获,我觉得有必要把它们拿出来总结分享.之前一直是个数论渣(小学初中没好好念过竞赛的缘故吧),经过一道题目对一些基础算法有了比较深刻的理解 ...
- HDU 1072 (不一样的入队条件) Nightmare
之前的BFS都是需要一个标记数组,但这个题不一样,因为可能一个格子不止走一次. 那么我们就要寻找新的入队条件:left比上次经过的时候大才入队(left表示上次经过该点时剩余的时间). 为什么呢?我们 ...
- acdream 1685 多民族王国(DFS,并查集)
Problem Description 娜娜好不容易才回忆起自己是娜娜而不是什么Alice,也回忆起了自己要继续探索这个世界的目标,便偷偷溜出皇宫.娜娜发现这个王国有很多个民族组成,每个民族都有自己的 ...
- ZOJ 3396 Conference Call(3点最小生成树)
题意:给出一组含m个点的无向图,再给出n个点,这n个点分别以一条边连接到这个无向图中的某个点.对于每个询问,求出3点连通的最小代价.有可能3个点是不能互通的.如图,最小代价就是红色的边的权之和. 思路 ...
- PHP中括号“{}”的3个作用
1,将多个独立语句合并为一个复合语句,例如“if .... else ....”中推荐如此使用. 2,在变量的间接引用中进行定界,避免歧义.例如“${$my_var[8]}”与“${$my_var}[ ...
- HDU 2026 首字母变大写
#include<cstdio> #include<cstring> #include<algorithm> using namespace std; int ma ...