最近工作需要,写了一个可以把Data set的 structure 和 data export 到 excel format file的class。 这不是正统的export 方法,其实它是用HTML的structure 来构造需要的excel。 虽然如此,这 excel的功能还是能一样的。而且还蛮整齐的。
我把 code 放在 http://cjjack88.blogspot.com/p/fastexportexcelhelper.html。 大家可以一起研究研究。
这是export 出来的excel format。
其实这个class 还不不完美。 还有很多需要改进的地方。尤其是performance 方面。
以下是一些示范如何使用这个class的code。
DataTable demoDataTable = BuildDemoTable();
using (FastExportExcelHelper myExcelHelper = new FastExportExcelHelper())
{
myExcelHelper.SetDataTable(demoDataTable);
string[] isDecimal = new string[] { "Decimal" };
string[] isDate = new string[] { "Date" };
string[] isBoolean = new string[] { "Boolean" };
myExcelHelper.IsBoolColumns(isBoolean);
myExcelHelper.IsDateColumns(isDate);
myExcelHelper.IsDecimalColumns(isDecimal);
myExcelHelper.RenameHeaderName("NeedToRename", "After Rename");
myExcelHelper.CreateFastExcel("Demo Excel", this.Response);
}
}
private DataTable BuildDemoTable()
{
DataTable result = new DataTable();
result.Columns.Add(new DataColumn("INT", typeof(int)));
result.Columns.Add(new DataColumn("Character", typeof(char)));
result.Columns.Add(new DataColumn("Decimal", typeof(decimal)));
result.Columns.Add(new DataColumn("Date", typeof(DateTime)));
result.Columns.Add(new DataColumn("Text", typeof(string)));
result.Columns.Add(new DataColumn("NeedToRename", typeof(string)));
result.Columns.Add(new DataColumn("Boolean", typeof(bool)));
char isChar = 'C';
decimal isDecimal = 100;
DateTime isDateTime = DateTime.Now;
string isString = "I am String .";
string isRename = "RenameBa";
bool iaBoolean = false;
for (int i = 0; i < 1000; i++)
{
result.Rows.Add(i, isChar, isDecimal, isDateTime, isString, isRename, iaBoolean);
}
return result;
}
我把demo 的files 放到media fire http://www.mediafire.com/?hq31ank883l2fzz。 有兴趣可以下载来看看。最后欢迎有建设性的意见。
_________________________________________________________________
_________________________________________________________________
为了鼓励你,你的所有可以按的广告我都按了。。哈哈哈
ReplyDelete话说回来,这个东西我也干过,把database的资料convert去.csv file.另外一次是把政府的pdf弄去excel,再从excel弄去text,最后把txt转换去database的table。
最强是前天,同事叫我delete完database里面的资料,再从另外一个同样table structure的database import新资料进去。因为那个database有50多个table,原本要打“delete * from table01” 50多次和"append from table x01"50多次。结果我自己写了一个command,按一下它就能在自己delete完和import新的data,哈哈。。。虽然花了一天的时间,总算对公司有贡献了。。。
《话说回来,这个东西我也干过,把database的资料convert去.csv file.另外一次是把政府的pdf弄去excel,再从excel弄去text,最后把txt转换去database的table。》
ReplyDelete你的工作很有挑战性哦~不错。。。
//你的工作很有挑战性哦~不错。。。//
ReplyDelete我写到很深奥吓你而已,哈哈。。
pdf 去excel是上网找converter做的
excel去 txt只是save as txt
txt放进去table只是一行query而已。。
哈哈~