顯示具有 工具 標籤的文章。 顯示所有文章
顯示具有 工具 標籤的文章。 顯示所有文章

2012年10月1日 星期一

{工具}HightChart 圖表套件

圓餅圖實例:
xxx.cs >>
//資料來源
var newData =ReadResult;
//資料轉為Json
data = new JavaScriptSerializer().Serialize(newData.Data);
 HiddenField1.Value=data;
//被統計項目
returnValue = new JavaScriptSerializer().Serialize(newData.Title);

xxx.aspx >>
<script type="text/javascript">
        var chart;
        $(document).ready(function () {
//解析資料來源
            var dataArr=new Array();
            if ($('#<%=HiddenField1.ClientID%>').val() != '') {
                dataArr = JSON.parse($('#<%=HiddenField1.ClientID%>').val());
                }
            var categories = <%=returnValue %>;
            var data=new Array();
            for(i=0;i<dataArr.length;i++)
            {
                data.push({name:categories[i],y:dataArr[i]});
            }

       //開始畫圖   
            chart = new Highcharts.Chart({
                chart: {
                    renderTo: 'container',
//圓餅圖表
                    defaultSeriesType:'pie'
                },
                title: {
                    text: 'High Chart'
                },
                xAxis: {
                    categories: <%=returnValue %>
                },
                tooltip: {
                    pointFormat: '{series.name}: <b>{point.percentage}%</b>',
                    percentageDecimals: 1
                },
                plotOptions: {
                pie: {
                    allowPointSelect: true,
                    cursor: 'pointer',
                    dataLabels: {
                        enabled: true,
                        color: '#000000',
                        connectorColor: '#000000',
                        formatter: function() {
                            return '<b>'+ this.point.name +'</b>: '+ this.percentage +' %';
                        }
                    }
                }
            },
                series: [{ data: data}]
            });

        });
       
      
    </script>




http://www.highcharts.com/demo/line-log-axis

相關範例∶
http://www.dotblogs.com.tw/lastsecret/archive/2011/01/30/21137.aspx
http://www.cnblogs.com/jsonzheng/archive/2011/05/13/2045344.html

長條圖:
http://www.cnblogs.com/jsonzheng/archive/2011/01/18/1938489.html

API:
http://api.highcharts.com/highcharts#title

2012年7月19日 星期四

{工具} Excel Data Reader 讀取Excel第三方元件

用來讀取Excel轉為Dataset的一項工具
但2003與2007 需call 不同的function

Sample:

FileStream stream = File.Open(FileUploader.PostedFile.FileName, FileMode.Open, FileAccess.Read);
//副檔名,區分是2003版 or 2007版
var arr = FileUploader.FileName.Split('.');
 IExcelDataReader excelReader;
if(arr.Count()==2)
  {
      if(arr[1]=="xlsx")
          //2007
          excelReader  = ExcelReaderFactory.CreateOpenXmlReader(stream);
      else
      {
           //2003
           excelReader = ExcelReaderFactory.CreateBinaryReader(stream);
       }
       DataSet result = excelReader.AsDataSet();
//取出Excport成Datatable的Excel資料
       DataTable table = result.Tables[0];
//關閉連線
       excelReader.Close();
}

參考資料:
http://exceldatareader.codeplex.com/
http://www.dotblogs.com.tw/yc421206/archive/2011/03/13/21819.aspx

2012年7月12日 星期四

{工具} NPOI Excel 讀寫工具(2013 更新,可支援到2007版本)

2013 更新:NPOI 2.0 可支援2003~2007 Excel版本

差異:

//2007
XSSFWorkbook workbook = new XSSFWorkbook(FileUpload1.FileContent);
//2003
HSSFWorkbook workbook = new HSSFWorkbook(FileUpload1.FileContent);

//辯別是2007還是2003
IWorkbook workbook = WorkbookFactory.Create(FileUpload1.FileContent);


匯入Example:

protected void Button1_Click(object sender, EventArgs e)
        {
            //NPOI.DLL:NPOI 核心函式庫。
            //NPOI.DDF.DLL:NPOI 繪圖區讀寫函式庫。
            //NPOI.HPSF.DLL:NPOI 文件摘要資訊讀寫函式庫。
            //NPOI.HSSF.DLL:NPOI Excel BIFF 檔案讀寫函式庫。
            //NPOI.Util.DLL:NPOI 工具函式庫。
            //NPOI.POIFS.DLL:NPOI OLE 格式存取函式庫。
            //ICSharpCode.SharpZipLib.DLL:檔案壓縮函式庫。
            if(FileUpload1.HasFile)
            {
                //辯別是2007還是2003
                IWorkbook workbook = WorkbookFactory.Create(FileUpload1.FileContent);
                
                ////2007
                //XSSFWorkbook workbook = new XSSFWorkbook(FileUpload1.FileContent);
                ////2003
                //HSSFWorkbook workbook = new HSSFWorkbook(FileUpload1.FileContent);


                int sheetCount= workbook.NumberOfSheets;
                DataSet ds=new DataSet();
                //讀每一個Sheet
                for (int i = 0; i < sheetCount; i++)
                {
                    var  hs = workbook.GetSheetAt(i);
                    DataTable dt = new DataTable();
                    //第一行是標題
                    var  hr =  hs.GetRow(0);
                    if (hr == null) continue;
                    int cellCount = hr.LastCellNum;
                    for (int j = hs.FirstRowNum; j < cellCount; j++)
                    {
                        DataColumn column=new DataColumn(hr.GetCell(j).StringCellValue);
                        dt.Columns.Add(column);
                    }

                    int rowCount = hs.LastRowNum;
                    
                    bool flag = false;
                    //略過第0列
                    for (int j = (hs.FirstRowNum+1); j < rowCount; j++)
                    {
                        var  hssfRow = hs.GetRow(j);
                        if (hssfRow == null) continue;
                        DataRow dr = dt.NewRow();
                        flag = false;
                        for (int k = hssfRow.FirstCellNum; k < cellCount; k++)
                        {
                            if (hssfRow.GetCell(k) != null)
                            {
                                switch (hssfRow.GetCell(k).CellType)
                                {
                                    case CellType.NUMERIC:
                                        {
                                            if(!flag)
                                                flag = CheckValue(hssfRow.GetCell(k).ToString());
                                            dr[k] = hssfRow.GetCell(k).NumericCellValue;
                                            break;
                                        }
                                    case CellType.STRING:
                                        {
                                            if(!flag)
                                                flag = CheckValue(hssfRow.GetCell(k).StringCellValue);
                                            dr[k] = hssfRow.GetCell(k).StringCellValue;
                                            break;
                                        }
                                    default:
                                        {
                                            if(!flag)
                                                flag = CheckValue(hssfRow.GetCell(k).ToString());
                                            dr[k] = hssfRow.GetCell(k).ToString();
                                            break;
                                        }
                                }
                            }
                        }

                        if (flag)
                            dt.Rows.Add(dr);
                    }
                    //讀完一個Sheet關閉一個Sheet
                    hs = null;

                    ds.Tables.Add(dt);
                }
                //全部Sheet讀完關閉Excel
                workbook = null;
                GridView1.DataSource = ds.Tables[0];
                GridView1.DataBind();

                GridView2.DataSource = ds.Tables[1];
                GridView2.DataBind();

            }
        }


匯出Excel格式設定範例:
http://wenku.baidu.com/view/035c53d0c1c708a1284a4444.html

EEPlus vs NPOI
http://www.dotblogs.com.tw/kkman021/archive/2012/04/21/71692.aspx


--------------------------------我是分隔線---------------------------------------
相關文章:
官網
http://npoi.codeplex.com/documentation

轉出Excel
http://dotnetmis91.blogspot.tw/2011/02/npoi-gridview.html

NPOI Library--中文解說
http://msdn.microsoft.com/zh-tw/ee818993.aspx

與EPPlus比較
http://wupinny.blogspot.tw/2011/07/aspnet-export-excel-with-npoi-and.html
http://www.dotblogs.com.tw/kkman021/archive/2012/04/21/71692.aspx

詳細應用
http://tonyqus.sinaapp.com/

合併多個Excel
http://www.dotblogs.com.tw/hunterpo/archive/2010/02/25/13759.aspx

NPOI匯出圖表
http://dotnetmis91.blogspot.tw/2010/03/chart-control-excel-npoi.html
http://www.cnblogs.com/atao/archive/2009/09/28/1576044.html

{工具} HttpWatch Basic 測試網頁載入速度

下載處:(支援IE與Firfox)
http://www.azofreeware.com/2008/11/httpwatch-basic-edition-6017.html

使用與安裝方式:
http://steachs.com/archives/1450


2012年7月2日 星期一

{LInq} Linq Pad 工具使用說明連結


Linq Pad 工具使用教學:
http://www.haogongju.net/art/134418