2011-11-28 24 views
0

我已經知道如何使用openfiledialog保存在excel中。但我想要發生的是,當我保存另一個文件時,我希望它保存在我現有的文件中,但在另一張表中。你們能幫我嗎?保存listview數據到相同的excel文件,但不同的表格

這是我救了

Public Sub saveExcelFile(ByVal FileName As String) 
      Dim xls As New Excel.Application 
      Dim sheet As Excel.Worksheet 
      Dim i As Integer 
      xls.Workbooks.Add() 
      sheet = xls.ActiveWorkbook.ActiveSheet 
      Dim row As Integer = 1 
      Dim col As Integer = 1 
      For Each item As ListViewItem In ListView1.Items 
        For i = 0 To item.SubItems.Count - 1 
          sheet.Cells(row, col) = item.SubItems(i).Text 
          col = col + 1 
        Next 
        row += 1 
        col = 1 
      Next 
      xls.ActiveWorkbook.SaveAs(FileName) 
      xls.Workbooks.Close() 
      xls.Quit() 
    End Sub 


Private Sub btnsave_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnsave.Click 
      Dim saveFileDialog1 As New SaveFileDialog 
      saveFileDialog1.Filter = "Excel File|*.xlsx" 
      saveFileDialog1.Title = "Save an Excel File" 
      saveFileDialog1.ShowDialog() 
      If saveFileDialog1.FileName <> "" Then 
        saveExcelFile(saveFileDialog1.FileName) 
      End If 
      MessageBox.Show("Record Saved!") 
    End Sub 

回答

0

使用NPOI導出到Excel代碼。您可以使用NPOI指定工作表。見documentation更多細節

您還可以使用Officehelper

編輯:

用於創建使用NPOI Excel工作表此示例代碼。這只是一個示例代碼。您需要參閱文檔以獲取更多詳細信息。

List<OrderViewModel> orderViewModelList = SelectOrders(); 

      //Add Column title 
      HSSFWorkbook hssfworkbook = new HSSFWorkbook(); 
      HSSFSheet sheet1 = hssfworkbook.CreateSheet("Sheet1"); 
      sheet1.CreateRow(0).CreateCell(0).SetCellValue("Order No"); 

      sheet1.CreateRow(0).CreateCell(5).SetCellValue("Price"); 


      //check for if device exist for saving 
      if (orderViewModelList.Count() > 0) 
      { 
       //Convert to csv class type 
       int i = 0; 
       foreach (var item in orderViewModelList) 
       { 
        HSSFRow enqRow = sheet1.CreateRow(i + 1); 

        enqRow.CreateCell(0).SetCellValue(item.OrderId); 

        enqRow.CreateCell(5).SetCellValue((item.OrderAmount)); 
        i++; 
       } 
      } 

      MemoryStream file = new MemoryStream(); 
      hssfworkbook.Write(file); 

      byte[] Data = file.GetBuffer(); 
      Response.Clear(); 
      Response.AddHeader("content-disposition", "attachment;filename=OrderReport.xls"); 
      Response.Charset = ""; 
      Response.ContentType = "application/ms-excel"; 
      Response.BinaryWrite(Data); 
      Response.End(); 

this example

如果你想一個新的工作表附加到現有的Excel工作表refer this example

+0

喜prasanth!你可以給我的代碼? –

+0

你能不能給我一些代碼? :) –

+0

@SigridAnnOmila請參閱示例代碼以創建excel。如果要使用現有文件並向其中添加一張表,請參閱最後一個鏈接 – Prasanth

相關問題