2011-11-28 55 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

相关问题