2014年7月9日 星期三

Microsoft.Office.Interop.Excel

#region Open xlsx file.
    Microsoft.Office.Interop.Excel.Application excel = new Application();
    Workbook workBook = excel.Workbooks.Open(FileLocation);
    Workbook myBook = excel.Workbooks[1];
    Microsoft.Office.Interop.Excel._Worksheet workSheet;
#endregion

#region Set Active Sheet 1
    workSheet = (Microsoft.Office.Interop.Excel.Worksheet)workBook.Worksheets[1];
    Microsoft.Office.Interop.Excel.Range wsCell = workSheet.Cells;
#endregion


//Insert Image
protected void insImg(string Rag, string fileLocation, object wkst, int width, int height)
{
    float left, top;
    left = Convert.ToSingle(((Worksheet)wkst).get_Range(Rag).Left);
    top = Convert.ToSingle(((Worksheet)wkst).get_Range(Rag).Top);
    ((Worksheet)wkst).Shapes.AddPicture(fileLocation, Microsoft.Office.Core.MsoTriState.msoFalse, Microsoft.Office.Core.MsoTriState.msoCTrue, left, top, width, height);
}//指定Range
protected void insImg(string fileLocation, object wkst, object wcell, float left, float top, int width, int height)
{
    ((Worksheet)wkst).Shapes.AddPicture(fileLocation, Microsoft.Office.Core.MsoTriState.msoFalse, Microsoft.Office.Core.MsoTriState.msoCTrue, left, top, width, height);
}//指定特定位置


//Embed Files
protected void insItem(string Rag, string fileLocation, object wkst, object Left, object Top)
{
    OLEObjects oleObjects1 = (Microsoft.Office.Interop.Excel.OLEObjects)((Worksheet)wkst).OLEObjects(Type.Missing);
    ((Worksheet)wkst).get_Range(Rag, Rag).Select();
    oleObjects1.Add(
        Type.Missing,         // ClassType
        @fileLocation,        // Filename
        false,                       // Link
        true,                        // DisplayAsIcon
        Type.Missing,         // IconFileName
        Type.Missing,         // IconIndex
        Type.Missing,         // IconLabel
        Left,                        // Left
        Top,                        // Top
        Type.Missing,          // Width
        Type.Missing           // Height
        );
}//指定Range
protected void insItem(string fileLocation, object wkst, object wcell, object Left, object Top)
{
    OLEObjects oleObjects1 = (Microsoft.Office.Interop.Excel.OLEObjects)((Worksheet)wkst).OLEObjects(Type.Missing);
    ((Worksheet)wkst).get_Range((Microsoft.Office.Interop.Excel.Range)wcell, (Microsoft.Office.Interop.Excel.Range)wcell).Select();
    oleObjects1.Add(
        Type.Missing,         // ClassType
        @fileLocation,        // Filename
        false,                       // Link
        true,                        // DisplayAsIcon
        Type.Missing,         // IconFileName
        Type.Missing,         // IconIndex
        Type.Missing,         // IconLabel
        Left,                        // Left
        Top,                        // Top
        Type.Missing,          // Width
        Type.Missing           // Height
    );
}//指定特定位置


#region Release & Kill Process
    //Release
    RLS(workSheet);
    if (workBook != null) workBook.Close(false, Type.Missing, Type.Missing);
    RLS(workBook);
    if (excel != null) excel.Quit();
    RLS(excel);

    //Kill Process EXCEL.EXE
    foreach (System.Diagnostics.Process p in System.Diagnostics.Process.GetProcesses())
    {
        if (p.ProcessName.ToUpper() == "EXCEL")
            p.Kill();
    }
#endregion

private void RLS(Object o)
{
    try { System.Runtime.InteropServices.Marshal.ReleaseComObject(o); }
    catch { }
    finally { o = null; }
}    

2013年12月23日 星期一

Get Gridview's Value with jQuery

<script type="text/javascript">
    $(document).ready(function () {
            var gv_table_id = '#<%=GridView1.ClientID %>';
            var gv_tr = $(gv_table_id).find('tr');

            gv_tr.each(function (i) { //Search Column Index = 1 's Value
                alert('index:' + i + ' , ' + $(this).find('td').eq(1).text());
            })
    })
</script>

2013年12月8日 星期日

Button Redirect Page in Iframe

T1.aspx

//HTML
<asp:Button runat="server" ID="btnTask1" OnClick="ShowTask" Text="Task1" CommandArgument="Task1" />
<asp:Button runat="server" ID="btnTask2" OnClick="ShowTask" Text="Task2" CommandArgument="Task2" />
<asp:Button runat="server" ID="btnTask3" OnClick="ShowTask" Text="Task3" CommandArgument="Task3" />
<iframe src="T2.aspx"></iframe>

//C#
public void ShowTask(object sender, EventArgs e)
{
this.Page.ClientScript.RegisterStartupScript(this.GetType(),this.GetType().Name,string.Format("window.frames[0].location.href = 'T2.aspx?Task={0}'", ((Button)sender).CommandArgument),true);
}

======================================================================
T2.aspx

//HTML
<asp:Label runat="server" ID="lblTask"></asp:Label>

//C#
protected void Page_Load(object sender, EventArgs e)
{
    this.lblTask.Text = this.Request.QueryString.Get("Task");
}

Ionic.Zip - Download Zip Multiple Files for Stream

Response.Clear();
Response.BufferOutput = false;  // for large files
Response.ContentType = "application/zip";
Response.AddHeader("content-disposition", "filename=Report.zip");

using (ZipFile zip = new ZipFile())
{
    for (int idx = 0; idx <= FileList.Rows.Count - 1; idx++)
   {
        CheckBox cb = (CheckBox)FileList.Rows[idx].FindControl("RowLevelCheckBox");
        if (cb.Checked)
       {
            zip.AddFile(@url, "");
        }              
    }
    zip.Save(Response.OutputStream);
    Response.Close();
}

2013年10月8日 星期二

Byte Save as Image Files

        byte[] FileBS;

        FileStream BFile = new FileStream(FileLC, FileMode.Create);
        BFile.Write(FileBS, 0, FileBS.GetUpperBound(0) + 1);
        BFile.Flush();
        BFile.Close();

2013年8月14日 星期三

Block during postback

 Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
          Dim sScript As String
 
          '頁面執行 Submit 時顯示 blockUI
          sScript = "$.blockUI();"
          ScriptManager.RegisterOnSubmitStatement(Me, Me.GetType(), "blockUI", sScript)
 
          '頁面載入時隱藏 blockUI
          sScript = "$.unblockUI();"
          ScriptManager.RegisterStartupScript(Me, Me.GetType(), "unblockUI", sScript, True)
End Sub