2013年9月10日 星期二

[轉貼] 取出Resources中的Excel/Word檔來使用

出處:http://sam319.blogspot.tw/2009_12_01_archive.html

這裡以Excel為例
如果我們需要一個Excel檔做範本
可以先把它拉到Resources中
image
然後在需要的時候才把它從Resources取出來使用
不過因為它沒辦法像圖檔可以直接操作
所以需要點小技巧
看程式碼
private void button1_Click(object sender, EventArgs e)
{
    byte[] sampleXls = Properties.Resources.sample; //取出Resources中的sample.xls檔
    FileStream outputExcelFile = new FileStream("C:\\sample.xls", FileMode.Create, FileAccess.Write); //存到C槽
    outputExcelFile.Write(sampleXls, 0, sampleXls.Length);
    outputExcelFile.Close();
}

把它存成一般的Excel檔案後
就可以對它做一般Excel的讀寫操作了

如果不喜歡固定存到某個位置讓別人知道
可以搭配Path類別幫你產生不重複的暫存檔
private void button2_Click(object sender, EventArgs e)
{
    string tmpFile = Path.GetTempFileName(); //取一個不重複的暫存檔名 (副檔名.tmp)
 
    byte[] sampleXls = Properties.Resources.sample;
    FileStream outputExcelFile = new FileStream(tmpFile, FileMode.Create, FileAccess.Write); //存到temp檔
    outputExcelFile.Write(sampleXls, 0, sampleXls.Length);
    outputExcelFile.Close();
 
    string xlsFile = Path.ChangeExtension(tmpFile, "xls"); //變更副檔名為.xls
    File.Move(tmpFile, xlsFile);
 
    MessageBox.Show("存到[" + xlsFile + "]成功");
}

沒有留言:

張貼留言