小男孩‘自慰网亚洲一区二区,亚洲一级在线播放毛片,亚洲中文字幕av每天更新,黄aⅴ永久免费无码,91成人午夜在线精品,色网站免费在线观看,亚洲欧洲wwwww在线观看

分享

使用oledb導出2007格式的Excel文件

 快樂至上365 2014-07-15

      使用C#,想把數據的導出為2007格式的Excel,擴展名為xlsx,開始使用如下的連接語句:

sConnectionString = "Provider=Microsoft.ACE.OLEDB.12.0;" +
"Data Source=" + fileName + ";" +
"Extended Properties='Excel 12.0;HDR=YES;'";

fileName里面指示的擴展名為xlsx,導出成功后一打開,提示:

打不開文件,后來把文件后綴改為xls可以打開,但沒有顯示“兼容模式”,且用winrar可以打開,是一個壓縮包來的,證明不是2003格式,但不是xlsx格式,后來發(fā)現還有一種格式,二進制格式保存的2007格式,后綴名為xlsb,把后綴改為這個,果然正常打開了。

      那么,怎么保存為xlsx格式呢?通過進一步查找,終于找到答案,需要使用下面的連接語句:

sConnectionString = "Provider=Microsoft.ACE.OLEDB.12.0;" +
"Data Source=" + fileName + ";" +
"Extended Properties='Excel 12.0 Xml;HDR=YES;'";

后面增加了Xml,就是保存成文本格式的Office Open XML格式。這樣就行了。

      上面的 HDR=YES 表示第一行是列名而不是數據。我實際使用中發(fā)現,不加這個,輸出的文件好像也沒什么不同。這個應該是針對讀取來用了,因為假如HDR=NO的時候,第一行也被當成數據來讀取了。而這個時候,由于列名一般為字符串,有可能導致一列中有多種不同的數據類型,可使用"IMEX=1"來檢索混合數據列。

      如果沒有這個引擎(例如沒有安裝office2007或以上版本),可到下面地址下載:

      Microsoft.ACE.OLEDB.12.0下載地址:http://www.microsoft.com/downloads/zh-cn/details.aspx?displaylang=zh-cn&FamilyID=7554f536-8c28-4598-9b72-ef94e038c891

      另外,2003格式的連接語句如下:

sConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;" +

"Data Source=" + fileName + ";" +

"Extended Properties=Excel 8.0;";

      根據SaveFileDialog選擇的不同擴展名,自動選擇連接語句的代碼:

復制代碼
saveFileDialog.Filter = "Excel2003 files (*.xls)|*.xls|Excel2007 (*.xlsx)|*.xlsx|Excel2007二進制表 (*.xlsb)|*.xlsb";
...

if (fileName.EndsWith("xls"))
{
sConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;" +

"Data Source=" + fileName + ";" +

"Extended Properties=Excel 8.0;";
}
else if (fileName.EndsWith("xlsx"))
{
sConnectionString = "Provider=Microsoft.ACE.OLEDB.12.0;" +
"Data Source=" + fileName + ";" +
"Extended Properties='Excel 12.0 Xml;HDR=YES;'";
}
else if (fileName.EndsWith("xlsb"))
{
sConnectionString = "Provider=Microsoft.ACE.OLEDB.12.0;" +
"Data Source=" + fileName + ";" +
"Extended Properties='Excel 12.0;HDR=YES;'";
}
復制代碼







    本站是提供個人知識管理的網絡存儲空間,所有內容均由用戶發(fā)布,不代表本站觀點。請注意甄別內容中的聯系方式、誘導購買等信息,謹防詐騙。如發(fā)現有害或侵權內容,請點擊一鍵舉報。
    轉藏 分享 獻花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多