Browse by Tags
All Tags
»
Excel
(
RSS
)
.NET
CODE
Coding4Fun
Open XML
Tips
Trouble-Shooting
中文編碼
潛盾機
XLS轉XLSX研究
要在C#讀寫Excel檔,直接呼叫Excel.exe是最直覺功能最齊全的做法,但Excel屬桌面互動程式,透過Web或排程等背景程序執行常有 問題 要克服,同時,只為單純讀取資料招喚龐大笨重的Excel程式有殺雞用牛刀之嫌,第三方元件是更理想的方式。 過去用過多套Excel處理程式庫: NPOI 、 EPPlus 、 OpenXML SDK 、 ClosedXML ,一路下來,ClosedXML支援不少Excel VBA風格的簡潔API,檔案相容性測試又比NPOI及EPPlus好,成為我處理Excel的首選...
Excel CSV輔助工具強化版-支援換行符號
避免Excel開啟CSV時截掉左補零的小工具 是我三年前的作品,用來克服Excel開啟CSV時"00001"會變成"1"的問題。最近網友g提供了一個轉換失敗案例,引發我的興趣,檢查CSV後發現幾項問題: CSV內含日文,使用Shift-JIS編碼(ANSI)而非UTF8,當初將所有ANSI檔案視為BIG5,形成亂碼 部分欄位內容夾帶換行符號(如黃底所示),擾亂原本以"\r\n"分隔資料列的解析邏輯 程式未考慮CSV部分欄位自帶雙引號的情況...
【笨問題】Excel「數值儲存為文字」小筆記
拿到一份資料庫查詢匯出的Excel檔,想加工卻碰了釘子。如下圖,明明是數字,用SUM(A1:A4)加總卻得到0。 全是幻覺,嚇不倒我滴!一切皆因儲存格格式被設成文字。 已知原因,但經驗不足,後續處理不怎麼順利。先試著將儲存格格式改為數值,加上千位號並調小數位數,但因欄位已被認定成文字,不動如山。換一招,複製整欄再用選擇性貼上,試了不同選項,文字就是文字,怎麼都無法變回數字。 【小筆記】一般手動輸入時若想將數字強迫存為文字(最常見情境是電話號碼,遇到通用格式前方的零會被移除),做法是在數字前方加上單引號...
【笨問題】在Excel如何只加總篩選後的結果
剛學會一個非常基本的Excel技巧: Excel篩選功能很好用,但使用SUM()加總永遠都是全部資料的總和,如何只加總篩選後的結果呢? 答案是 -- 使用 SUBTOTAL() 函數!廢話不多說,請看VCR~
同時開啟兩個Excel檔案於多螢幕並列顯示
Excel有個討厭特性,開啟多份Excel檔案時不像Word每個文件一個視窗,而是預設開在同一視窗,每次只能顯示其中一個檔案,如果要左右並陳對照,可以取消個檔案的最大化,在同一個視窗中並列,只是這麼做不能善用多螢幕的優勢,雖然可以將視窗拉大橫跨兩個螢幕,但有螢幕解析不同,以及無法使用快捷鍵調整視窗尺寸位置的問題,用起來不甚順手,還是覺得像Word一樣各自成為獨立視窗操作比較方便。 平日上班使用Excel 2010,有個解決方案不要直接點選Excel澢,而由程式集的Exce捷徑l開啟新l視窗,點選兩次就會產生兩個獨立的Excel視窗...
Office自動儲存,我要輕輕為你唱首歌
過去只知道Office的自動儲存功能能在當機時救回部分未儲存內容。最近才發現,連自己手殘誤砍,自動儲存也能讓你少搥幾下心肝。 故事是這樣: 我在Excel編輯資料,由文件末端複製了一大段空白列,準備插入中段後輸入資料,明明該用【插入複製的儲存格】,卻鬼迷心竅按成【貼上】而不自覺,就這麼把幾十行打好的資料給蓋過了。等要插入的資料打完,立刻存檔求心安,接著向下找後半部的資料繼續改... 才發現資料不 見 了!! 趕緊先將後來中段新增資料複製到另一個Excel,再狂按Ctrl+Z想復原到用空白列覆蓋前的狀態...
呼叫Excel的程式無法以排程方式執行
某支呼叫Excel的轉檔程式(做法如 前文 所述),直接執行正常,移入Windows 2008排程執行,卻發生錯誤: Task Scheduler successfully completed task "\Run Excel" , instance "{2b987743-dfa2-4883-b7ee-0f26b1534c64}" , action "X:\Temp\RunExcel.exe" with return code 3762504530...
透過.NET程式操作Excel的注意事項
【個案】某支開啟Excel進行作業的.NET排程程式,定期排程執行時遇到錯誤,留下一堆無主excel.exe。 用以下程式示範: using System; using System.Collections.Generic; using System.Linq; using System.Runtime.InteropServices; using System.Text; using System.Threading.Tasks; using Microsoft.Office.Interop.Excel;...
【茶包射手日記】Excel xlsm複製工作表到xls時出現1004錯誤
幫忙修改某個Excel VBA,透過巨集要將xslm的某個工作表(Worksheet)複製到另一個xls活頁簿(Workbook),執行Sheets("TheSheet").Copy Before:=AnothorXLS.Sheets("Boo"),卻出現以下錯誤: 執行階段錯誤 '1004': Excel無法將工作表插入目的地活頁簿,因為它包含的列和欄比來源活頁簿少。若要移動或複製資料至目的地活頁簿,您可以選取資料,然後使用[複製]與[貼上...
關於Excel 1900/1/0的兩三事
活到老學到老! 最近才發現Excel處理空日期的一些行為,沒多加鑽研,僅簡單筆記備忘: 將儲存格設為日期格式,當儲存格無內容,則顯示空白;若輸入0,則會顯示1900/1/0。 若設為日期格式的儲存格是經由"=A2"公式自其他儲存格取值,即使A2無內容,也會出現1900/1/0。 如不希望Excel顯示1900/1/0這種無效日期格式,可使用儲存格自訂格式小密技,寫成"yyyy/MM/dd;;",用兩個分號將格式字串分成三段,第一段適用於正數、第二段適用負數...
令人驚豔的Excel程式庫 - ClosedXML
處理ReportViewer匯出檔的 比武大會 上,NPOI與EPPlus都敗下陣來,Open XML SDK雖然勝出,但在應用呼叫上繁瑣難搞,用起來總覺礙手礙腳。在研究 Open XML SDK設定工作表保護 的過程,發現新大陸 - 另一套Open Source的Excel程式庫, ClosedXML 。 簡單整理ClosedXML特色如下: 程式庫很俏皮地命名為ClosedXML,事實它高度依賴Open XML SDK,在引用時,程式必須一併參考DocumentFormat.OpenXml.dll...
使用Open XML SDK保護工作表不被修改
在先前 測試 中,Open XML SDK是唯一挑戰ReportViewer匯出Excel檔修改成功的程式庫,手邊的下一步需求是要將工作表(Worksheet)設為不可修改。 在Open XML SDK中,有個 SheetProtection 類別,將其加入xlsx的XML結構,就可向應用程式宣告該工作表允許或禁止的操作,例如: 刪除欄(deleteColumns)、重設儲存格格式(formatCells)、插入列(insertRow)... 等等。在SheetProctection設定可以指定解除鎖定的密碼雜湊值...
【茶包射手日記】EPPlus無法開啟ReportViewer匯出xlsx檔
使用EPPlus 3.1.2開啟RDLC匯出的xlsx檔,讀取ExcelPackage.Workbook.Worksheets時發生錯誤: System.ArgumentNullException: Value cannot be null. Parameter name: String 既然EPPlus是Open Source,照慣例 -- " Use the Source, Luke! " 追進原始碼,找到案發現場 -- ExcelWorksheet.cs LoadColumns...
【茶包射手日記】EPPlus 3.1.2 Bug Fixing
發現EPPlus 3.1.2版Bug一枚。 開啟現有xlsx後,不做任何修改就儲存,再使用Excel開啟會出錯。例如以下範例: using (ExcelPackage p = new ExcelPackage(new FileInfo("通訊錄.xlsx"))) { p.Save(); } 程式執行後使用Excel開啟重新儲存的通訊錄.xlsx檔案,會出現以下錯誤: Excel 在 '通訊錄.xlsx' 中找到無法讀取的內容...
【潛盾機】將檔案結構匯成Excel文件
看圖說故事好了。有個存放專案檔案的資料夾: 因專案管理要求,需匯出依資料夾層級縮排的Excel文件樣式如下,方便填寫目錄或檔案說明: 其中還有一點小要求是希望能彈性地略過某些目錄、檔案,例如: obj目錄。覺得這是個很好的NPOI練習題材,於是我寫了以下的小工具: namespace DumpWebTree { using System; using System.Collections.Generic; using System.Linq; using System.Text; using System...
更多文章
下一頁 »
搜尋
Go
<
March 2023
>
Sun
Mon
Tue
Wed
Thu
Fri
Sat
26
27
28
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
1
2
3
4
5
6
7
8
【廣告】
OrcsWeb: Windows Server Hosting
最新回應
2018-09-20 接手老專案的菜鳥
Windows 停用 TLS 1.0 之配套作業整理
黑大,謝謝您!
2018-09-20 Andy
KO範例6 - 陣列元素的新增/移除事件
Dear 黑暗大 感謝您,已成功將count後的數值寫入資料庫 利用您提供的方法...
2018-09-19 Jeffrey
KO範例6 - 陣列元素的新增/移除事件
to Andy, 如果你 ASP.NET 端是用 PostBack 方式取值,最簡單的做法是將...
2018-09-19 Andy
KO範例6 - 陣列元素的新增/移除事件
Dear 黑暗大 您好 我設計一個網頁,裡面有一些TextBox,其中還有如此範例的動態表格...
2018-09-18 Jeffrey
Windows 停用 TLS 1.0 之配套作業整理
to 接手老專案的菜鳥, support.microsoft.com/.../support...
2018-09-18 接手老專案的菜鳥
Windows 停用 TLS 1.0 之配套作業整理
黑大: 我有個系統是.NET 2.0開發的,如果安裝了.NET 4.5/或者4.6以及ADO...
2018-09-17 Jeffrey
CODE - WebClient 下載檔案自動取得檔名
to Slash, 感謝提醒,程式已修改強化。
2018-09-16 Slash
CODE - WebClient 下載檔案自動取得檔名
雖然與你分享這段小程式的目的不同,但還是要提醒Regex.Split這邊會有RFC5987的問題...
2018-09-06 打雜工程師
ASP.NET Core 值得學嗎?
黑大,我再跟BOSS討論看看,謝謝您^^
2018-09-03 Jeffrey
ASP.NET Core 值得學嗎?
to 打雜工程師, 1) 如果系統上線時程吃緊且不容閃失,用 ASP.NET MVC...
Tags 分類檢視
.NET
.NET Core
AJAX
Android
AngularJS
ASP.NET
ASP.NET MVC
ASP.NET保安
Autofac
Bicycle
C# 4.0
CODE
Coding4Fun
Collections
Community Server
Cordova
CSS
Dapper
Debug
EF
English
Entity Framework
Excel
Hangfire
Hiking
HTML5
IE
IIS
Java
Javascript
jQuery
JSON
KB
Kendo UI
knockoutjs
Life
Linq
Live SDK
Lucene.Net
Mobile
MSDTC
NLog
NuGet
Open XML
ORACLE
Performance
Reporting Service
RESTful Web Service
Security
Sharepoint
SignalR
Silverlight
Skype
SQL
SQL 2000
SQL 2005
SQL 2008
SQLite
T4
TechEd
Telerik MVC
TFS
ThinkPad
Tips
Tools
Trouble-Shooting
TypeScript
Unobtrusive Validation
VBScript
Virus
Vista
Visual Studio
VS Code
VS.NET 2003
VS2005
VS2008
VS2010
VS2012
VS2013
VS2015
VS2017
Vue
WCF
Web
Windows 10
Windows 2008
Windows 2012
Windows 7
Windows 8
Windows Phone
Work
WP7
WPF
中文編碼
慢跑
潛盾機
科學實驗
自動測試
閱讀筆記
風花雪月
關於作者
一個醉心技術又酷愛分享的Coding魔人,十年的IT職場生涯,寫過系統、管過專案, 也帶過團隊,最後還是無怨無悔地選擇了技術鑽研這條路,近年來則以做一個"
有為的中年人
"自許。
文章典藏
September 2018 (5)
August 2018 (12)
July 2018 (8)
June 2018 (6)
May 2018 (19)
April 2018 (14)
March 2018 (10)
February 2018 (10)
January 2018 (14)
December 2017 (22)
November 2017 (12)
October 2017 (16)
September 2017 (9)
August 2017 (13)
July 2017 (16)
June 2017 (17)
May 2017 (9)
April 2017 (13)
March 2017 (15)
February 2017 (14)
January 2017 (12)
December 2016 (8)
November 2016 (11)
October 2016 (15)
September 2016 (11)
August 2016 (19)
July 2016 (16)
June 2016 (14)
May 2016 (20)
April 2016 (13)
March 2016 (15)
February 2016 (11)
January 2016 (16)
December 2015 (12)
November 2015 (15)
October 2015 (14)
September 2015 (25)
August 2015 (16)
July 2015 (13)
June 2015 (11)
May 2015 (12)
April 2015 (15)
March 2015 (17)
February 2015 (9)
January 2015 (12)
December 2014 (12)
November 2014 (15)
October 2014 (12)
September 2014 (22)
August 2014 (16)
July 2014 (17)
June 2014 (18)
May 2014 (11)
April 2014 (10)
March 2014 (14)
February 2014 (14)
January 2014 (4)
December 2013 (12)
November 2013 (11)
October 2013 (13)
September 2013 (15)
August 2013 (12)
July 2013 (13)
June 2013 (16)
May 2013 (20)
April 2013 (22)
March 2013 (15)
February 2013 (9)
January 2013 (10)
December 2012 (14)
November 2012 (10)
October 2012 (12)
September 2012 (30)
August 2012 (16)
July 2012 (17)
June 2012 (18)
May 2012 (9)
April 2012 (15)
March 2012 (12)
February 2012 (8)
January 2012 (6)
December 2011 (9)
November 2011 (11)
October 2011 (15)
September 2011 (15)
August 2011 (18)
July 2011 (24)
June 2011 (31)
May 2011 (16)
April 2011 (13)
March 2011 (13)
February 2011 (11)
January 2011 (15)
December 2010 (18)
November 2010 (12)
October 2010 (10)
September 2010 (18)
August 2010 (19)
July 2010 (22)
June 2010 (20)
May 2010 (19)
April 2010 (19)
March 2010 (24)
February 2010 (14)
January 2010 (24)
December 2009 (13)
November 2009 (14)
October 2009 (27)
September 2009 (20)
August 2009 (18)
July 2009 (18)
June 2009 (22)
May 2009 (14)
April 2009 (19)
March 2009 (17)
February 2009 (25)
January 2009 (16)
December 2008 (23)
November 2008 (20)
October 2008 (19)
September 2008 (21)
August 2008 (10)
July 2008 (16)
June 2008 (20)
May 2008 (20)
April 2008 (21)
March 2008 (18)
February 2008 (9)
January 2008 (18)
December 2007 (20)
November 2007 (22)
October 2007 (20)
September 2007 (23)
August 2007 (22)
July 2007 (19)
June 2007 (27)
May 2007 (22)
April 2007 (23)
March 2007 (23)
February 2007 (17)
January 2007 (9)
December 2006 (12)
November 2006 (15)
October 2006 (7)
September 2006 (9)
August 2006 (16)
July 2006 (14)
June 2006 (12)
May 2006 (12)
April 2006 (9)
March 2006 (4)
February 2006 (7)
January 2006 (8)
October 2005 (1)
August 2005 (1)
July 2005 (1)
June 2005 (2)
February 2005 (2)
January 2005 (5)
February 2004 (2)
January 2004 (13)
其他功能
這個部落格
Home
Syndication
Comments RSS