重慶分公司,新征程啟航
為企業(yè)提供網(wǎng)站建設(shè)、域名注冊、服務(wù)器等服務(wù)
為企業(yè)提供網(wǎng)站建設(shè)、域名注冊、服務(wù)器等服務(wù)
Excel.Application excel = default(Excel.Application);
武定網(wǎng)站制作公司哪家好,找成都創(chuàng)新互聯(lián)公司!從網(wǎng)頁設(shè)計(jì)、網(wǎng)站建設(shè)、微信開發(fā)、APP開發(fā)、響應(yīng)式網(wǎng)站設(shè)計(jì)等網(wǎng)站項(xiàng)目制作,到程序開發(fā),運(yùn)營維護(hù)。成都創(chuàng)新互聯(lián)公司于2013年開始到現(xiàn)在10年的時(shí)間,我們擁有了豐富的建站經(jīng)驗(yàn)和運(yùn)維經(jīng)驗(yàn),來保證我們的工作的順利進(jìn)行。專注于網(wǎng)站建設(shè)就選成都創(chuàng)新互聯(lián)公司。
Excel._Workbook xBk = default(Excel._Workbook);
Excel._Worksheet xSt = default(Excel._Worksheet);
Excel.Range xRange = default(Excel.Range);
Excel.PivotCache xPivotCache = default(Excel.PivotCache);
Excel.PivotTable xPivotTable = default(Excel.PivotTable);
Excel.PivotField xPivotField = default(Excel.PivotField);
string cnnsr = null;
string sql = null;
string[] RowFields = {
"",
"",
""
};
string[] PageFields = {
"",
"",
"",
"",
"",
""
};
//SERVER 是服務(wù)器名或服務(wù)器的IP地址
//DATABASE 是數(shù)據(jù)庫名
//Table 是表名
try {
// 開始導(dǎo)出
cnnsr = "ODBC;DRIVER=SQL Server;SERVER=" + SERVER;
cnnsr = cnnsr + ";UID=;APP=Report Tools;WSID=ReportClient;DATABASE=" + DATABASE;
cnnsr = cnnsr + ";Trusted_Connection=Yes";
excel = new Excel.ApplicationClass();
xBk = excel.Workbooks.Add(true);
xSt = xBk.ActiveSheet;
xRange = xSt.Range("A4");
xRange.Select();
// 開始
xPivotCache = xBk.PivotCaches.Add(SourceType: 2);
xPivotCache.Connection = cnnsr;
xPivotCache.CommandType = 2;
sql = "select * from " + Table;
xPivotCache.CommandText = sql;
xPivotTable = xPivotCache.CreatePivotTable(TableDestination: "Sheet1!R3C1", TableName: "數(shù)據(jù)透視表1", DefaultVersion: 1);
//準(zhǔn)備行字段
RowFields[0] = "字段1";
RowFields[1] = "字段2";
RowFields[2] = "字段3";
//準(zhǔn)備頁面字段
PageFields[0] = "字段4";
PageFields[1] = "字段5";
PageFields[2] = "字段6";
PageFields[3] = "字段7";
PageFields[4] = "字段8";
PageFields[5] = "字段9";
xPivotTable.AddFields(RowFields: RowFields, PageFields: PageFields);
xPivotField = xPivotTable.PivotFields("數(shù)量");
xPivotField.Orientation = 4;
// 關(guān)閉工具條
//xBk.ShowPivotTableFieldList = False
//excel.CommandBars("PivotTable").visible = False
excel.Visible = true;
} catch (Exception ex) {
if (cnn.State == ConnectionState.Open) {
cnn.Close();
}
xBk.Close(0);
excel.Quit();
MessageBox.Show(ex.Message, "報(bào)表工具", MessageBoxButtons.OK, MessageBoxIcon.Warning);
}
不知道你是怎么百度的,你的百度關(guān)鍵詞應(yīng)當(dāng)選擇“VB 統(tǒng)計(jì)多個(gè)excel文件中的數(shù)據(jù)”。
1、數(shù)據(jù)透視表是用于在excel中不通過編程就實(shí)現(xiàn)匯總數(shù)據(jù)的目的,既然你都想編程了,數(shù)據(jù)透視表也就失去意義。
2、ACCESS更是無稽之談,多此一舉。
3、Excel文件不管多少,最重要的是每個(gè)文件要有統(tǒng)一的格式,這樣就有了編程的前提。
實(shí)現(xiàn)方法是:
1、讓程序能找到所有excel文件
2、用子過程讀取每一個(gè)文件,獲得所需要的數(shù)據(jù),進(jìn)行匯總
3、所有數(shù)據(jù)進(jìn)行匯總,得到結(jié)果。
Private?Sub?Worksheet_Activate()
ActiveSheet.PivotTables("數(shù)據(jù)透視表1").PivotCache.Refresh
ActiveSheet.PivotTables("數(shù)據(jù)透視表2").PivotCache.Refresh
EndSub
這個(gè)是在透視表沒有重命名的情況,且有多個(gè)透視表的情況下的代碼。點(diǎn)擊透視表所在Sheet頁時(shí)觸發(fā),當(dāng)然代碼也是寫在對應(yīng)Sheet中的。
有兩種方法,一種是使用DataGridView,一種是使用ListView
參考地址如下:
DataGridView
如何:使用設(shè)計(jì)器對 Windows 窗體 ListView 控件中的項(xiàng)進(jìn)行分組
對 Windows 窗體 ListView 控件中的項(xiàng)進(jìn)行分組
把DGV數(shù)據(jù)放到datatable DataTable dt = new DataTable(); for (int j = 0; j ucgrd.Columns.Count; j++) { dt.Columns.Add(ucgrd.Columns[j].HeaderCell.Value.ToString()); } for (int j = 0; j ucgrd.Rows.Count; j++) { DataRow dr = dt...
DataGridView控件,放一個(gè)DataGridView1和Button1到窗體,下面是按鈕下代碼
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
Me.DataGridView1.AllowUserToAddRows = False
DataGridView1.RowTemplate.Height = 200
DataGridView1.AutoSizeRowsMode = DataGridViewAutoSizeRowsMode.None
For i = 1 To 3
Me.DataGridView1.Columns.Add("列" i.ToString, "列" i.ToString)
Me.DataGridView1.Rows.Add()
Next
Me.DataGridView1.Columns(0).Width = 100
Me.DataGridView1.Columns(1).Width = 500
Me.DataGridView1.Columns(0).Width = 300
End Sub
'自己設(shè)置相關(guān)需要的屬性即可