VSTO---excel编程 [待续] [12月5日更新,详见文档下面]
生活随笔
收集整理的這篇文章主要介紹了
VSTO---excel编程 [待续] [12月5日更新,详见文档下面]
小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
?
最近比較閑了,考試也快要到了。但是編程技術(shù)方面還是不能掉啊.現(xiàn)在開(kāi)始VSTO編程之旅了。這個(gè)話題是連Blog的。所以有興趣的Blog之友,技術(shù)之士,可以匿名或者非匿名的評(píng)論,交流。
對(duì)了,下面的代碼都是本人寫(xiě)的,和積累的,每一個(gè)功能都是以Method的形式進(jìn)行粘貼的,一般只有你懂的話,就可以直接調(diào)用的,當(dāng)然一般都是從基礎(chǔ)開(kāi)始。
如果想和本人進(jìn)行交流的話,我的首頁(yè)上有我的MSN。。。。
正在話歸正題----
???????????????VSTO[Excel]
//新建Sheet
private?void?CreditSheet()
{
?????Excel.Workbook?newWorkbook?=?this.Application.Workbooks.Add(missing);
}
//打開(kāi)Sheet
private?void?OpenSheet()
{
??this.Application.Workbooks.Open(this.ImputFolderName.Text.ToString(),?missing,?missing,?missing,?missing,?missing,?missing,?missing,?missing,?missing,?missing,?missing,?missing,?missing,?missing);
}
//連續(xù)在多個(gè)單元格中顯示文字,并調(diào)整各自單元格的寬度
private?void?AimatA1RangeUsingNameRange()
????????{
????????????//設(shè)定一個(gè)NamedRange
????????????NamedRange?textInCell;
????????????textInCell?=?this.Controls.AddNamedRange(this.get_Range("A8",?missing),?"EvaluateDemo");
????????????//重新規(guī)定?NameRange?[A8-D8]
????????????textInCell.RefersTo?=?"=Sheet1!$A$8:$D$8";
????????????//evaluate
????????????textInCell.Value2?=?"Hello?world!";
????????????//自動(dòng)調(diào)整單元格
????????????textInCell.Columns.AutoFit();
????????}
**此Value2?屬性與?Value?屬性的唯一區(qū)別在于,Value2?不是參數(shù)化屬性。
private?void?FindMarthaInTheRange()
????????{
????????????this.Range["H1",?missing].Value2?=?"Martha?jone?";
????????????NamedRange?auto_HR?=
????????????????this.Controls.AddNamedRange(this.Range["H2",?missing],
????????????????"auto_HR");
????????????//根據(jù)H1中的字符串自動(dòng)從頭查找并復(fù)制同樣的值
????????????auto_HR.Value2?=?auto_HR.AutoComplete("Ma");
????????????//自動(dòng)調(diào)整單元格
????????????auto_HR.Columns.AutoFit();
????????}
*在這里Martha?jone?不能任意查找,意思就是AutoComplete(參數(shù)值),只能從頭匹配,不能任意匹配。
//合并單元格
private?void?MergeRange()
{
????NamedRange?rangeOne?=?this.Controls.AddNamedRange(this.Range["A12",?"D27"],?"rangeOne");
????rangeOne.Select();
????rangeOne.Merge(false);
}
//設(shè)置Cells邊框
private?void?setBordersAndInterior()
????????{
????????????//第一種寫(xiě)法
????????????NamedRange?bordersRange?=?this.Controls.AddNamedRange(this.Range["E12","F12"],?"borderRange");
????????????bordersRange.Borders.LineStyle?=?Excel.XlLineStyle.xlSlantDashDot;
????????????
????????????//Set?Color
????????????bordersRange.Interior.Color?=?0xFF00;
????????????//第二種寫(xiě)法
????????????for?(int?i?=?1;?i?<=?7;?i++)
????????????{
????????????????base.Range[base.Cells[i,?7],?base.Cells[i,?8]].Borders.LineStyle?=?i;????
????????????}?
????????}
AutoCalculate#region?AutoCalculate
//自動(dòng)計(jì)算
private?void?NotifyChanges()
{
????NamedRange?changesRange?=?this.Controls.AddNamedRange(this.Range["G2",?"G8"],?"compositeRange");
????changesRange.Change?+=?new?DocEvents_ChangeEventHandler(changesRange_Change);
}
private?void?changesRange_Change(Range?Target)
{
???NamedRange?namedRange2?=
????????????????this.Controls.AddNamedRange(this.Range["G9",?missing],
????????????????"namedRange5");
???//設(shè)置公式???
???namedRange2.Formula?=?"=SUM(G2:G8)";
???namedRange2.FormulaHidden?=?true;
???//計(jì)算
???namedRange2.Calculate();
}
今天就到此吧。。。待續(xù)
#endregion
12月5日更新(快考試,要加油了)
問(wèn)題1:為什么在單元格中輸入一個(gè)19位或者更多位的數(shù)字,顯示時(shí)數(shù)字不會(huì)以16進(jìn)制的形式顯示,如:1111E+9。想實(shí)現(xiàn)“以文本形式顯示數(shù)字”?
???答:只要設(shè)置一下此單元格NumberFormatLocal?="@"?即可
ex:
????this.Range["A35",?missing].NumberFormatLocal?=?"@";
????this.Range["A35",?missing].Value2?=?"111111111111111111111111111111111111111111”;
問(wèn)題2:想把當(dāng)前活動(dòng)窗口網(wǎng)格線去掉?????????????
???答:設(shè)置DisplayGridlines?為False即可。this.Application.ActiveWindow.DisplayGridlines?=?false;
轉(zhuǎn)載于:https://www.cnblogs.com/RuiLei/archive/2006/11/22/568929.html
總結(jié)
以上是生活随笔為你收集整理的VSTO---excel编程 [待续] [12月5日更新,详见文档下面]的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 近期热播电视剧集锦 哪一部是你的最爱呢
- 下一篇: 触漫电波贝如何获得