c# 讀取和寫入excel資料

來源:互聯網
上載者:User

標籤:

1. 讀取

DataTable GetDataFromExcelByConn(bool hasTitle = false)
{
    OpenFileDialog openFile = new OpenFileDialog();
    openFile.Filter = "Excel(*.xlsx)|*.xlsx|Excel(*.xls)|*.xls";
    openFile.InitialDirectory = Environment.GetFolderPath(Environment.SpecialFolder.Desktop);
    openFile.Multiselect = false;
    if (openFile.ShowDialog() == DialogResult.Cancel) return null;
    var filePath = openFile.FileName;
    string fileType = System.IO.Path.GetExtension(filePath);
    if (string.IsNullOrEmpty(fileType)) return null;

    using (DataSet ds = new DataSet())
    {
        string strCon = string.Format("Provider=Microsoft.Jet.OLEDB.{0}.0;" +
                        "Extended Properties=\"Excel {1}.0;HDR={2};IMEX=1;\";" +
                        "data source={3};",
                        (fileType == ".xls" ? 4 : 12), (fileType == ".xls" ? 8 : 12), (hasTitle ? "Yes" : "NO"), filePath);
        string strCom = " SELECT * FROM [Sheet1$]";
        using (OleDbConnection myConn = new OleDbConnection(strCon))
        using (OleDbDataAdapter myCommand = new OleDbDataAdapter(strCom, myConn))
        {
            myConn.Open();
            myCommand.Fill(ds);
        }
        if (ds == null || ds.Tables.Count <= 0) return null;
        return ds.Tables[0];
    }
}

 

2. 寫入

public static bool SaveDataTableToExcel(System.Data.DataTable excelTable, 
string filePath)
 
{
 
Microsoft.Office.Interop.Excel.Application app =
 
new Microsoft.Office.Interop.Excel.ApplicationClass();
 
try
 
{
 
app.Visible = false;
 
Workbook wBook = app.Workbooks.Add(true);
 
Worksheet wSheet = wBook.Worksheets[1] as Worksheet;
 
if (excelTable.Rows.Count > 0)
 
{
 
 int row = 0;
 
 row = excelTable.Rows.Count;
 
 int col = excelTable.Columns.Count;
 
 for (int i = 0; i < row; i++)
 
 {
 
 for (int j = 0; j < col; j++)
 
 {
 
 string str = excelTable.Rows[i][j].ToString();
 

c# 讀取和寫入excel資料

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.