0

こんにちは、ファイルを 1 つの amazon s3 サーバーにアップロードしました。Excel ファイルを読み込んで、Excel データをデータベースに送信するにはどうすればよいですか。私のコードは

<script type="text/javascript">
         var obj = null;
         $(function () {
             $('#fileupload').fileupload({
                 replaceFileInput: false,
                 formData: function (form) {
                     return [{ name: "name1", value: "value1" }, { name: "name2", value: "value2"}];
             $('#btnGo').click(function () {
                 obj.submit();
             });
         });
     </script>

そして、Excelデータを読み取る必要がある私のashxページ

public class AjaxFileHandler : IHttpHandler
    {
        public void ProcessRequest(HttpContext context)
        {
            var file = context.Request.Files[0];
            string fileName=fileName = Guid.NewGuid().ToString() + file.FileName;
            Stream streamContentFile = context.Request.Files[0].InputStream;

            var iFileSize = context.Request.Files[0].ContentLength;
            byte[] data = new byte[iFileSize];
            int bytes_read = 0;
            while (bytes_read < iFileSize)
            {
                int bytes_read_this_iteration = streamContentFile.Read(data, bytes_read, iFileSize - bytes_read);
            streamContentFile.Close();
            streamContentFile.Dispose();
            CommonBLL.UploadTemporaryFilesToS3Bucket(fileName, data);
//Here i need to read excel code can you provide how to do that pleas
    }
4

2 に答える 2

0

次の 2 つが必要です。

  • コードが Excel コンテンツを読み取れるようにするドライバー
  • このファイルへのアクセス
  • Excel データに対するクエリ

このサンプルでは:

  • サーバーにインストールする必要があるACE (Microsoft Access データベース エンジン)ドライバーを使用しています。
  • ファイルはApp_Dataフォルダーにあります(あなたの場合、ファイルはCommonBLLライブラリにアクセスする必要があります)
  • クエリはUPDATEクエリです。一般的な DB SNippets を使用して、SELECTまたはクエリに置き換えることができます。INSERT

    string fileName= Server.MapPath( "~/App_Data/MyFile.xls");
    string sheetName= "Sheet1";
    string connString = string.Format(
          "Provider=Microsoft.ACE.OLEDB.12.0;Data Source={0};Extended Properties='Excel 8.0;HDR=No'"
          , fileName);
    string command = string.Format("UPDATE [{0}${1}:{1}] SET F1='{2}'", sheetName,cellName, cellValue);
    
       using (OleDbConnection oledbConn = new OleDbConnection(connString))
        {
            oledbConn.Open();
            using (OleDbCommand cmd = new OleDbCommand(command, oledbConn))
                cmd.ExecuteNonQuery();
    
            oledbConn.Close();
        }
    
于 2012-07-23T09:41:35.500 に答える
0

Excel、 EPPlus (xslx)、またはNPOI (xls)用のオープン ソース ライブラリを使用します。それらは非常に使いやすく、多数の Excel のインポート/エクスポートに EPPlus を使用していますが、うまく機能しています。これらのライブラリには外部依存関係がなく、サーバー側で使用できます。

于 2012-07-23T09:47:31.793 に答える