iT邦幫忙

0

C# Excel 轉圖檔 記憶體不足?

我記憶體16G run code怎麼會不足呢?
以下我的code:
前面using我就不打了,該加入參考已加入

class Program
{
static void Main(string[] args)
{
object ActivePrinter = (object)"Tagged Images Printer";
object PrintToFile = (object)true;
object PrToFileName = (object)@"D:\DocToImg" + DateTime.Now.Ticks.ToString();
Microsoft.Office.Interop.Excel.Application appExcel = new Microsoft.Office.Interop.Excel.Application();
EXECL.Workbook EXECLwb = appExcel.Workbooks.Open(@"D:\DocToImg\666.xlsx");
EXECLwb.PrintOutEx(ActivePrinter: ActivePrinter, PrintToFile: PrintToFile, PrToFileName: PrToFileName);
EXECLwb.Close();
appExcel.Quit();
System.Drawing.Image img = System.Drawing.Image.FromFile(PrToFileName.ToString()); //卡這裡
img.Save(@"D:\DocToImg\666.jpg", System.Drawing.Imaging.ImageFormat.Jpeg);
img.Dispose();
File.Delete(PrToFileName.ToString());
}
}
}
https://ithelp.ithome.com.tw/upload/images/20180511/20109425E1LubYY3Ae.jpg
https://ithelp.ithome.com.tw/upload/images/20180511/20109425A7WvY4D6GB.jpg

優悠 iT邦新手 3 級 ‧ 2018-05-11 16:13:11 檢舉
你要不要點 檢視詳細資料看看,或是用TRY CATCH看錯誤訊息(請打開裡面的一堆參數尋找,光看外面這個訊息,沒經驗的人都不會知道
ted8224 iT邦新手 5 級 ‧ 2018-05-11 16:26:05 檢舉
有改好了,謝謝...我針對這個問題google看看...如果大大您知道..可否告知...謝謝
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

1 個回答

0
小魚
iT邦大師 1 級 ‧ 2018-05-11 20:23:40

不知道去哪裡看的,
輸出的根本不是圖檔,怎麼能使用 Image.FromFile 呢?
Excel轉圖有個很大的困難,
要怎麼決定列印的範圍呢?

看更多先前的回應...收起先前的回應...
ted8224 iT邦新手 5 級 ‧ 2018-05-14 08:08:24 檢舉

小魚大大,我是看這裡的
http://www.it610.com/article/1459997.htm

ted8224 iT邦新手 5 級 ‧ 2018-05-14 08:08:55 檢舉

他的code有問題囉?

ted8224 iT邦新手 5 級 ‧ 2018-05-14 09:25:34 檢舉

小魚大大,這個我有用,但是卡關...
http://www.cnblogs.com/lyl6796910/archive/2013/01/24/2875799.html

ted8224 iT邦新手 5 級 ‧ 2018-05-18 15:21:02 檢舉

我有修改一下了
object ranobj = Type.Missing;
object ActivePrinter = (object)"Tagged Images Printer";
object PrintToFile = (object)true;
object PrToFileName = (object)@"C:\DocToImg+Interop.PowerPoint-img-{0}.png";
Microsoft.Office.Interop.Excel.Application appExcel = new Microsoft.Office.Interop.Excel.Application();
EXECL.Workbook EXECLwb = appExcel.Workbooks.Open(@"D:\DocToImg\777.xlsx");
EXECLwb.PrintOutEx(ActivePrinter: ActivePrinter, PrintToFile: PrintToFile, PrToFileName: PrToFileName);

            System.Drawing.Image img = System.Drawing.Image.FromFile(PrToFileName.ToString());   
            img.Save(@"D:\DocToImg\777.png", System.Drawing.Imaging.ImageFormat.Png);
            img.Dispose();
            File.Delete(PrToFileName.ToString());
            EXECLwb.Close();
            appExcel.Quit();
             
             
ted8224 iT邦新手 5 級 ‧ 2018-05-18 15:23:19 檢舉

一樣卡住了....您說的圖檔我有改了
https://ithelp.ithome.com.tw/upload/images/20180518/20109425t897oNSa9Z.jpg
https://ithelp.ithome.com.tw/upload/images/20180518/20109425pVorulTUJC.jpg

小魚 iT邦大師 1 級 ‧ 2018-05-19 15:12:11 檢舉

你這是東拼西湊的吧...
其實GetExcel那個函式是可以用的,
只是缺點是每一個Sheet只轉換一張圖片...

ted8224 iT邦新手 5 級 ‧ 2018-05-21 09:38:59 檢舉

您有run出來嗎?
我還沒說......
是阿我是把一些東西合體run看看的...
有問一些前輩他們都沒做過
沒辦法給我建議...
我還是只能去google找尋答案..

小魚 iT邦大師 1 級 ‧ 2018-05-21 12:00:16 檢舉

GetExcel可以,這個我確定,
可以一個Sheet做成一個圖檔,
只是我還沒辦法把一個Sheet分成多個圖檔,
有在考慮自己讀取自己寫轉換,
不過我半年前想做的現在還沒開始做,
所以不要太期待,
畢竟還是賺錢比較重要...

我要發表回答

立即登入回答